iOS系统区域设置标识符为空

时间:2016-03-16 03:20:12

标签: ios swift nsdate nsdateformatter

我在使用日期格式化程序时发现了一些奇怪的东西。下面是日期格式化程序的代码。

let formatter = NSDateFormatter()
formatter.dateFormat = "EEE dd MMM h:mm a"
formatter.locale = NSLocale.systemLocale()
print(formatter.stringFromDate(NSDate()) )

输出结果为:“Fri 18 M03 1:05 PM”。这有点奇怪。但是删除格式化程序的语言环境可以得到我想要的输出:“Fri 18 Mar 1:05 PM”。

我也尝试打印出NSLocale.systemLocale(),输出为空字符串。这是正常的吗?当您更改区域设置时,日期格式化程序实际发生了什么?

仅供参考:我正在实际设备上进行测试。此外,更改设备设置中的区域格式不会影响区域设置标识符。

1 个答案:

答案 0 :(得分:0)

如果您想使用系统设置,请使用此NSLocale.currentLocale()

在Apple的API文档中已经有了一个观点。

<强>讨论 如果不需要任何本地化,请使用系统区域设置。使用当前区域设置来格式化显示给用户的文本。

仅供参考:https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSLocale_Class/index.html#//apple_ref/occ/clm/NSLocale/systemLocale