好的,我已经经历了大约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个小时。 :(
答案 0 :(得分:1)
您的格式错误。请参阅Unicode Technical Standard #35-31,used 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上的一个错误。