我无法将此日期时间字符串从Django转换为iOS NSDate

时间:2012-08-17 22:20:22

标签: nsdate nsdateformatter

我从Django API获取NSString 2012-08-17T10:56:45.508205

我正在尝试使用以下代码将该字符串转换为NSDate对象:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[dateFormatter setTimeZone:timeZone];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"];
NSDate *date = [dateFormatter dateFromString:stringToConvert];

但是date对象为null。我哪里错了?

1 个答案:

答案 0 :(得分:5)

您从Django API获得的ISO8601字符串(2012-08-17T10:56:45.508205)不包含时区组件。但是,您在格式字符串中包含该字段符号(Z)。只需删除它,它应该可以正常工作。

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

有关格式代码的详细信息,请参阅Unicode Technical Reference