swift - 获取语​​言环境日期格式信息

标签 swift locale date-formatting

使用 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 是一个特殊的格式说明符,仅与模板一起使用,它根据适当的时间返回 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

关于swift - 获取语​​言环境日期格式信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54165122/

相关文章:

ios - 静默警告“无法为[symbol]创建紧凑展开:堆栈subl指令与侏儒堆栈大小太大不同”

android - 使用 resConfig 为 Android 风格强制语言环境

android - 启动具有特定语言环境的应用程序

关于特定国家/地区的 mysql 日期格式

swift - Swift 中的 NSUserDefaults - 实现类型安全

swift - 未捕获的 Kotlin 异常 : kotlin. native.IncorrectDereferenceException:非法尝试访问非共享

ios - 如何计算 Swift 数组中某个元素的出现次数?

android - 列出 Android 手机中所有已安装或支持的语言

sqlite 时间戳格式化

jquery - JQGrid 中的日期字段具有自定义格式化程序