nsformatter dateFromString是零
问题描述:
我正在使用xcode,目标c和目标ios 5最小的iphone应用程序。 我所要做的就是将字符串转换为日期。我已经阅读过很多,它应该是一个简单而直接的任务。我在论坛上看到过许多其他类似的问题,但是为人们工作的东西似乎不适合我。 下面是我在做什么nsformatter dateFromString是零
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dobText = [dict valueForKey:@"DateOfBirth"];
NSDate *dobDate = [dateFormatter dateFromString:dobText];
的dobText总是在格式@“1999-01-01”使用日期从字符串时总是无相匹配的日期格式的日期格式设置,但结果。
任何人都可以解释这一点给我,让我知道如何解决它?
答
你确定日期在你从字典中得到的数据中使用的是-
而不是–
。我可以重现无结果当我使用一个–
(ALT + - )
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dobText = @"2009-02-12";
NSDate *dobDate = [dateFormatter dateFromString:dobText];
NSLog(@"%@", dobDate);
尝试这样做,可能会解决您的问题。
NSString *dobText = [[dict valueForKey:@"DateOfBirth"] stringByReplacingOccurrencesOfString:@"—" withString:@"-"];
答
看看你的设备上的用户喜好。该文件说:
注意的是,虽然在 原则上设置一个格式字符串(setDateFormat :)指定一个确切的格式,在实践中可能仍然 也可以通过用户的覆盖偏好,看到Data Formatting Guide 了解更多详情。
答
我怀疑像bigkm说,你的破折号可能会妨碍你。
我建议你先尝试一个虚拟字符串。例如
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dobText = @"1999-01-01" // [dict valueForKey:@"DateOfBirth"];
NSDate *dobDate = [dateFormatter dateFromString:dobText];
现在确实有效吗?这应该。现在三角另一种方式:
- 从DOB文字完全删除破折号,使之具有格式为“年月日”
- 将日期格式看看这个相同的格式
这是否工作?这应该。这将证明您的格式中的分隔符是问题,需要进一步检查(或按照大公司的建议进行清理)。
副节点重新线程化:如果您在创建它的线程上使用它,NSDateFormatter会很好。如果你不知道,你会知道该应用程序会崩溃。
答
如果您的日期格式正确,我可以建议将NSLocale设置为您的NSDateFormatter。
对于我这个代码工作的模拟器:
NSString *format = [NSString stringWithFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
NSDateFormatter *df = [NSDateFormatter new];
[df setDateFormat:format];
NSDate *date = [df dateFromString:pubDateSttring];
,但对设备日期始终为零。设置NSLocale的
我找到了解决方法:
df.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
的代码应该工作。如果你手动设置dobText(dobText = @“1999-01-01”;) – vakio 2012-07-23 11:33:12
是的,即使手动输入到dobText或甚至到[dateFormatter dateFromString:@“1999-01-01”]; – glogic 2012-07-23 11:34:44
它看起来不错,但是如果您在后台线程中使用NSDateFormatter,则会出现一些问题。你在做那个吗? http://*.com/questions/5638416/datefromstring-always-returns-null-with-dateformatter – 2012-07-23 11:44:52