我有一個問題,用於將一個香檳JSON字符串日期:解析JSON日期到的NSDate取決於用戶設置
「created_at」= 「2012-12-22T21:39:22Z」;
成爲NSDate。
這裏是我目前的類別爲:
- (NSDate*)dateWithJSONString
{
[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
[dateFormatter setCalendar:[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]];
NSDate *date = [[NSDate alloc] init];
date = [dateFormatter dateFromString:self];
return date;
}
問題是這樣的工作對於我的病例的95%,但如果一些用戶在有日期和時間設置使用AM/PM,而不是24H的聯合自定義國際設置,日期不是從json字符串創建的。
我看了這個discussion,但我找不到與我所有的國際用戶和設置一起工作的好方法。
我加入這個例如:
[dateFormatter setLocale:[NSLocale currentLocale]];
,但什麼也沒有改變。如果我使用AM/PM而不是24H設置我的iPhone,則不會創建NSDate。
AM/PM NSDate的模式: 2013年1月21日上午07時12分43秒+0000
24H NSDate的模式: 2013年1月21日7時12分43秒+0000
什麼我錯過了嗎?有什麼需要更新的日期格式?
添加此:[jsonDateFormatter的setLocale:[[NSLocale的alloc] initWithLocaleIdentifier:@ 「en_US_POSIX」]];現在可以了。 –
本技術說明適用於:http://developer.apple.com/library/ios/#qa/qa1480/_index.html –