你能在不使用自定义dateFormat的情况下重写NSDateFormatter 12和24小时时间格式吗?



我想将Date转换为用户所在时区的显示字符串,但是我想使用24小时时间格式而不是12小时时间格式。

我知道我可以通过显式地设置自定义dateFormat字符串来做到这一点,但是这失去了让系统生成符合用户语言环境设置的字符串的好处。

NSNumberFormatter的设置允许您更改转换的各个方面,如小数分隔符。

是否有NSDateFormatter的设置,可以让我在12和24小时格式之间切换,而不必诉诸于完全自定义的格式?

DateFormatter具有dateFormat(fromTemplate:options:locale:)方法。使用它可以根据用户的区域设置获得适当的24小时格式。

let fmt = DateFormatter.dateFormat(fromTemplate: "Hms", options: 0, locale: Locale.current)

虽然这似乎返回HH:mm:ss对于大多数地区。在739个可用的语言环境中,只有85个返回HH:mm:ss以外的内容。

最新更新