我在转换原始 JSON 字符串日期时遇到问题:
"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 字符串创建的。
我阅读了此讨论,但找不到与所有国际用户和设置一起工作的好方法。
例如,我添加了这个:
[dateFormatter setLocale:[NSLocale currentLocale]];
但它什么也没改变。如果我将 iPhone 设置为 AM/PM 而不是 24H,则不会创建 NSDate。
AM/PM NSDate 架构:2013-01-21 07:12:43 AM +0000
24H NSDate 架构:2013-01-21 07:12:43 +0000
我错过了什么 ?日期格式有什么要更新的吗?