Hal*_*ero 4 nsdateformatter swift
我不知道为什么,但 DateFormatter 在使用 localizedDateFormats 时似乎删除了 \'-\' 并将其替换为逗号。
\n\n删除 - 字段并将其变成逗号似乎不是 unicode 标准的一部分。我还尝试用 '\' 包围 - 。我正在尝试使用 setLocalizedDateFormatFromTemplate 来处理本地化,所以我不能只使用 use .dateFormat (它确实解决了这个问题)
\n\nlet dateHyphenFormatter = DateFormatter()\ndateHyphenFormatter.setLocalizedDateFormatFromTemplate("LLL d YYYY \xe2\x80\x90 j:mm a")\nprint(dateHyphenFormatter.string(from: Date())) // Jun 29, 2017, 1:57 PM\nRun Code Online (Sandbox Code Playgroud)\n
setLocalizedDateFormatFromTemplate应该仅与一组格式说明符一起使用。返回的格式反映了这些字段在给定区域设置中的显示方式。因此,字段的顺序和任何标点符号都是为您确定的。说明符的顺序以及您在模板中放置的任何标点符号都将被忽略。在某些情况下,实际的格式说明符将被更改以更好地匹配区域设置的标准。
您将通过以下模板获得相同的格式:
LLLdyyyyjmma
yyyyLLLdjmma
Run Code Online (Sandbox Code Playgroud)
以及这些说明符的任何其他顺序以及您放入其中的任何其他(忽略)标点符号。
仅供参考 - 不要使用YYYY。你要yyyy。
以下是一些测试代码,演示了每个区域设置如何使用您的模板:
for localeId in Locale.availableIdentifiers.sorted() {
let locale = Locale(identifier: localeId)
if let format = DateFormatter.dateFormat(fromTemplate: "yyyyLLLdjmma", options: 0, locale: locale) {
print("\(localeId) - \(format)")
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,此代码由于某种原因在 Xcode 9 beta 2 中崩溃,因此请务必使用 Xcode 8 进行测试。
| 归档时间: |
|
| 查看次数: |
4501 次 |
| 最近记录: |