获取本地日期格式信息

11

使用Swift 4,有没有一种方法可以获得区域设置日期格式的字符串表示?基于iPhone的区域设置,我想找出格式是yyyy/mm/dd还是mm/dd/yyyy。

我已经找到了所有更改日期格式或从区域设置中获取日期的方法,但是还没有找到如何获取实际格式的方法。

1个回答

17

使用 DateFormatter dateFormat(fromTemplate:options:locale:)

let userFormat = DateFormatter.dateFormat(fromTemplate: "yyyyMMdd", options: 0, locale: Locale.current)
在美国,这将返回MM/dd/yyyy。在德国,这将返回dd.MM.yyyy
如果您需要获取适当的时间格式,并考虑到用户选择的12/24小时制时间格式,请使用模板jmsj是一个特殊的格式说明符,仅与模板一起使用,根据适当的情况返回小时的hH
另一个可能的选项是创建一个DateFormatter,设置所需的dateStyletimeStyle,然后读取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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接