NSDateFormatter在stringFromDate中始终为NIL! (iOS 8.0)

时间:2015-02-25 21:01:39

标签: ios nsdate nsdateformatter

好的,我已经经历了大约20个主题。我检查了所有区域,时区,等等......没什么。

我试图复制整个片段,人们说他们在工作,但他们不为我工作?!

这来自服务器:2015-02-25T21:48 + 02:00

我做了以下事情。我有一个UIViewController,在ViewDidLoad中,我执行以下操作:

mDateFormat = [[NSDateFormatter alloc] init];
[mDateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mmZZZ"];

稍后在TableView中我尝试从NSDate中获取String。并且真正调查了它,它肯定是NSDate而不是NSString。

date = [mDateFormat stringFromDate:order.date];
NSLog(date);
NSLog([order.date description]);
NSDate *dd = [mDateFormat dateFromString:@"2014-10-15T00:00+02:00"];
NSLog([dd description]);

日期是NSString,日期始终为零。

来自order.date的NSLog返回:2015-02-25T21:57 + 01:00 来自dd的NSLog返回:2014-10-14 22:00:00 +0000

我不知道如何解决这个问题。我已经工作了1-2个小时。 :(

2 个答案:

答案 0 :(得分:1)

您的格式错误。请参阅Unicode Technical Standard #35-31used by iOS 7 and above

ZZZ的格式类似于-0800没有 :)。您希望ZZZZZ(5 Z)支持冒号,如-08:00中所示。所以正确的格式应该是:

[mDateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mmZZZZZ"];

答案 1 :(得分:0)

我在iOS8上遇到过与NSDateFormatter类似的问题。尝试使用dateFromString检索NSDate时,始终返回nil。这都是关于iOS Region Format设置的。将其更改为其他区域,然后返回到您的区域设置。这可能是iOS8上的一个错误。