更精確地說,這是不是爲我工作:爲什麼NSDateFormatter返回nil?
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-ddTHH:mm:ssZ"];
NSDate *prevday = [formatter dateFromString:@"2011-04-07T22:00:48Z"];
prevday將返回NIL。
更精確地說,這是不是爲我工作:爲什麼NSDateFormatter返回nil?
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-ddTHH:mm:ssZ"];
NSDate *prevday = [formatter dateFromString:@"2011-04-07T22:00:48Z"];
prevday將返回NIL。
根據該文件;
日期格式化使用標準以下版本;
http://unicode.org/reports/tr35/tr35-10.html#Date_Format_Patterns
所以你使用的日期格式「YYYY-MM-DDTHH:MM:SS」我不知道的Z,是,應該是時區?格式字符串中的Z將爲您提供3個字母的時區名稱。
編輯根據您的修改上面:
[formatter setDateFormat:@"YYYY-MM-ddTHH:mm:ssZ"];
就是爲什麼它返回nil。
的「Z」預計的時間段是在3個字符時區的事情...
降Z或用引號字符轉義。閱讀上面的tr35文檔以獲取更多信息。
你只需要在T和Z上添加刻度,所以它會是:[formatter setDateFormat:@「YYYY-MM-dd'T'HH:mm:ssZ''」]; – user1447414 2014-04-23 10:18:09
你有沒有試過? – 2011-04-08 18:41:52