我有这段代码要读取ISO 8601日期/时间规范。问题是,出于某种原因,这个月不起作用。每次我将它转换成“01”。我究竟做错了什么?NSDateFormatter似乎有错误的月份
NSDateFormatter *UTCDateFormat = [[NSDateFormatter alloc] init];
[UTCDateFormat setDateFormat:@"yyyy-MM-DD'T'HH:mm:ss'Z'"];
[UTCDateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[UTCDateFormat setCalendar:[[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]];
[UTCDateFormat setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]];
NSLog(@"%@", [UTCDateFormat dateFromString:dateString]);
因此,举例来说,如果dateString是:
@"2002-03-12T21:13:27Z"
我的输出是:
2002-01-12 21:13:27 +0000
事情我已经尝试:
- 改变的MM LL
- 试过没有setCalendar/setLocale
- 试用'围绕 -
- MM转换位置到其他地方。它从不改变任何东西。
- 看了这么多,它似乎适用于其他人。
这可能不会改变任何东西,但我认为'DD'格式说明符应该是'dd'。 – dasblinkenlight 2012-02-13 20:45:12