Sco*_*urn 2 locale date-formatting swift
使用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)
Run Code Online (Sandbox Code Playgroud)
在美国,这种回报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)
Run Code Online (Sandbox Code Playgroud)
对于美国,这给出了:
MMMM d,y'at'h:mm:ss zzzz
对于德国,这给出了:
d。MMMM y'um'HH:mm:ss zzzz