我有這段代碼要讀取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