2012-04-10 109 views
0

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

2012-04-09T23:57:44.070Z 

我的日期格式爲:

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

但它返回零。我的日期格式有什麼問題? 謝謝

回答

5

你不需要如此咄咄逼人地逃脫-:。另外,你的秒字符是錯誤的。您應該使用:

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