我在使用日期格式化程序时发现了一些奇怪的东西。下面是日期格式化程序的代码。
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(),输出为空字符串。这是正常的吗?当您更改区域设置时,日期格式化程序实际发生了什么?
仅供参考:我正在实际设备上进行测试。此外,更改设备设置中的区域格式不会影响区域设置标识符。
答案 0 :(得分:0)
如果您想使用系统设置,请使用此NSLocale.currentLocale()
在Apple的API文档中已经有了一个观点。
<强>讨论强> 如果不需要任何本地化,请使用系统区域设置。使用当前区域设置来格式化显示给用户的文本。