- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定为什么,但 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/
我不确定为什么,但 DateFormatter 在使用 localizedDateFormats 时似乎删除了“-”并将其替换为逗号。 删除 - 字段并将其变成逗号似乎不是 unicode 标准的一部
我是一名优秀的程序员,十分优秀!