在iOS文档中使用rfc3339dateFormatter作为示例后,dateFromString返回nil

时间:2014-09-02 13:55:31

标签: ios objective-c date nsdate nsdateformatter

我试图通过以下方式解析来从NSString获取NSDate:

NSDateFormatter *rfc3339DateFormatter = [[NSDateFormatter alloc] init];
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];

[rfc3339DateFormatter setLocale:enUSPOSIXLocale];
[rfc3339DateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"];
[rfc3339DateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

NSString *createdString = [NSString stringWithFormat:@"2014-08-27T17:10:36.000+05:30"];
NSDate *createdDate = [rfc3339DateFormatter dateFromString:createdString];

这里createdDate以nil的形式返回。我在这里错过了什么?另请说明我对timeZone和locale的正确使用。

1 个答案:

答案 0 :(得分:0)

您没有使用正确日期格式化程序

使用此行:

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

代替:

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