NSDateFormatter不格式化(返回nil)

问题描述:

我有一个日期字符串,例如:NSDateFormatter不格式化(返回nil)

2012-04-09T23:57:44.070Z 

我的日期格式为:

[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"]; 

但它返回零。我的日期格式有什么问题? 谢谢

你不需要如此咄咄逼人地逃脱-:。另外,你的秒字符是错误的。您应该使用:

NSDateFormatter *f = [[NSDateFormatter alloc] init]; 
[f setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; 
[f setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; 

NSLog(@"%@", [f dateFromString:@"2012-04-09T23:57:44.070Z"]); 

这将记录:

2012-04-09 23:57:44 +0000 

如果不设置上的日期格式的时区,它要承担你的意思是什么时区的装置是在现在,和不是 GMT时区(这是Z暗示的)。

+1

这可能是一个愚蠢的问题,但如果你想以相反的方式做呢?我如何从这个字符串中获取日期对象:2012-04-09 23:57:44 +0000谢谢! – 2012-05-10 02:47:50

+0

@RafaelMoreira'NSDateFormatter'有一个'-dateFromString:'方法。 – 2012-05-10 03:25:29

+1

我知道。我的意思是日期格式化程序的格式是什么。我试过[dateFormatter setDateFormat:@“yyyy-MM-dd HH:mm:ss ZZZ”];但它不起作用。我也试过只有一个Z和ZZ但没有成功。 – 2012-05-10 22:41:37