【发布时间】:2013-02-02 10:55:37
【问题描述】:
我一直在使用以下 NSDateFormatter 代码来格式化我的日期字符串,输出如下: '2013-02-18 03:23:32.928000 +0000'
这一直有效,直到添加了使用欧洲 iPhone 的用户,输出更改为: '2013-02-18 02:00:40 AM.118000 +0000'
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[dateFormatter setTimeZone:timeZone];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSSSSS Z"];
关于格式化程序为何无法始终如一地工作的任何提示?
【问题讨论】:
-
这是因为用户将手机的 12/24 小时模式设置为与区域设置的 12/24 默认值冲突。您必须将 NSDateFormater 的语言环境设置为不会以这种不稳定方式运行的版本——通常是 en_US_POSIX。
-
感谢您指出这是一个重复的问题。我仍然认为保留这个问题是有价值的,因为另一个问题的标题不像这个问题那么直接。换句话说,当我遇到这个问题时,我不认为我的问题的答案是在一个标题为“处理 NSDateFormatter 语言环境“功能”的最佳方法是什么?”的问题中给出的。请让我知道我应该如何编辑并继续处理这个问题,以使其对每个人都非常有用。谢谢。
标签: ios objective-c nsdateformatter