使用 Swift 4,有没有办法获取语言环境日期格式的字符串表示形式?根据 iPhone 的区域设置,我想知道格式是 yyyy/mm/dd 还是 mm/dd/yyyy。
我已经找到了所有更改日期格式或从区域设置格式获取日期的方法,但无法弄清楚如何获取实际格式。
最佳答案
使用 DateFormatter dateFormat(fromTemplate:options:locale:)
。
let userFormat = DateFormatter.dateFormat(fromTemplate: "yyyyMMdd", options: 0, locale: Locale.current)
在美国,返回 MM/dd/yyyy
。在德国,这给出 dd.MM.yyyy
。
如果您需要获得适当的时间格式,同时考虑到用户选择的 12/24 小时时间格式,请使用 jms
模板。 j
是一个特殊的格式说明符,仅与模板一起使用,它根据适当的时间返回 h
或 H
。
另一种可能的选择是创建一个DateFormatter
,设置所需的dateStyle
和timeStyle
,然后读取dateFormat
属性:
var mydf = DateFormatter()
mydf.dateStyle = .long // set as desired
mydf.timeStyle = .full // set as desired
print(mydf.dateFormat)
对于美国,这给出了:
MMMM d, y 'at' h:mm:ss a zzzz
对于德国,这给出了:
d. MMMM y 'um' HH:mm:ss zzzz
关于swift - 获取语言环境日期格式信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54165122/