这是日期格式化程序设置:
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
dateFormatter.timeStyle = .medium
预期输出:
Aug 13, 2017 6:04:11 PM
电流输出:
Aug 13, 2017 at 6:04:11 PM
如何在不指定格式字符串的情况下理想地删除“at”字以及它来自哪里?
使用奥地利德语语言环境:
dateFormatter.locale = Locale(identifier: "de_AT")
13.08.2017, 18:04:11
使用美国英语语言环境:
dateFormatter.locale = Locale(identifier: "en_US")
Aug 13, 2017 at 6:04:11 PM
最佳答案
一种选择是进行两个单独的转换,一个
仅设置 dateStyle = .medium
, 并且只有一个设置timeStyle = .medium
,然后连接结果。但我不知道
如果一个
<date><space><time>
格式在所有语言和地区都有意义。
更好的方法是使用
setLocalizedDateFormatFromTemplate
:dateFormatter.setLocalizedDateFormatFromTemplate("MMM dd yyyy jj:mm:ss")
这接近您想要的,并且保证给
所有区域设置的合理结果。这里有一些例子。
en_US:2017 年 8 月 13 日下午 6:33:54
发布时间:2017 年 8 月 13 日,18:33:54
ja:2017年8月13日18:33:54
注意
jj
的用法小时的格式,这将被解释如
HH
(24 小时制)或 hh
(12 小时 AM/PM 格式),视情况而定在语言环境上。
关于swift - 如何从格式化的日期字符串中删除 'at'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45662367/