gpt4 book ai didi

swift - setLocalizedDateFormatFromTemplate 删除 -

转载 作者:行者123 更新时间:2023-11-28 06:17:00 25 4
gpt4 key购买 nike

我不确定为什么,但 DateFormatter 在使用 localizedDateFormats 时似乎删除了“-”并将其替换为逗号。

删除 - 字段并将其变成逗号似乎不是 unicode 标准的一部分。我也试过用''包围-。我正在尝试使用 setLocalizedDateFormatFromTemplate 来处理本地化,所以我不能只使用 use .dateFormat(它确实解决了它)

let dateHyphenFormatter = DateFormatter()
dateHyphenFormatter.setLocalizedDateFormatFromTemplate("LLL d YYYY ‐ j:mm a")
print(dateHyphenFormatter.string(from: Date())) // Jun 29, 2017, 1:57 PM

最佳答案

setLocalizedDateFormatFromTemplate 应该只与一组格式说明符一起使用。返回的格式反射(reflect)了这些字段在给定语言环境中的显示方式。因此,字段的顺序和任何标点符号都是为您确定的。说明符的顺序和您放入模板中的任何标点符号都将被忽略。在某些情况下,实际的格式说明符将被更改以更好地匹配语言环境的标准。

您将使用以下模板获得相同的格式:

LLLdyyyyjmma
yyyyLLLdjmma

以及这些说明符的任何其他顺序以及您在此处输入的任何其他(忽略的)标点符号。

仅供引用 - 不要使用 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)")
}
}

请注意,由于某些原因,此代码在 Xcode 9 beta 2 中会崩溃,因此请务必使用 Xcode 8 对其进行测试。

关于swift - setLocalizedDateFormatFromTemplate 删除 -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44834900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com