【发布时间】:2016-03-13 19:24:24
【问题描述】:
此代码适用于我可以确定的每个地区/语言环境组合,除非我将手机设置为英国地区并设置 12 小时制。谁能告诉我为什么?
这适用于所有地区,包括英国,设置 12 小时制:
NSDateFormatter *theDateFormatter = [[NSDateFormatter alloc] init];
theDateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSSSSSZ";
NSString *theLastFetchDateString = @"2015-11-13T01:47:52.4630000Z";
NSDate *theLastFetchDate = [theDateFormatter dateFromString:theLastFetchDateString];
这适用于除英国以外的所有地区,设置为 12 小时制:
NSDateFormatter *theDateFormatter = [[NSDateFormatter alloc] init];
theDateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSSSSSZ";
NSString *theLastFetchDateString = @"2015-11-13T18:14:44.1230000Z";
NSDate *theLastFetchDate = [theDateFormatter dateFromString:theLastFetchDateString];
在第二种情况下,theLastFetchDate 始终为零。
我看到的主要区别是第二个日期以 24 小时格式存储,而解析设备以 12 小时格式存储,但格式化程序 HH 应该能够处理,是吗?
另一个奇怪的事情,它可能只是一个显示的事情,是英国 12 小时时钟格式时间与“a.m.”或“下午”其中美国 12 小时制将它们格式化为“AM”或“PM”。
【问题讨论】:
标签: ios objective-c nsdateformatter