首页 > 解决方案 > Swift DateFormatter amSymbol 不能与 dosRelativeDateFormatting 一起使用?

问题描述

我在以下代码上遇到问题:

let dateFormatter = DateFormatter()
dateFormatter.locale = locale
dateFormatter.dateStyle = .short
dateFormatter.timeStyle = .short

dateFormatter.doesRelativeDateFormatting = true
dateFormatter.amSymbol = "a" // not working if above set to true
dateFormatter.pmSymbol = "p"

let str = dateFormatter.string(from: Date())

输出 => str String "今天,下午 12:15"

如果dosRelativeDateFormatting = false,amSymbolpmSymbol设置器工作, dosRelativeDateFormatting设置为 true,amSymbol 和 pmSymbol 设置器似乎没有任何区别。

你认为这是一个 SDK 错误还是我错过了什么?

标签: iosswiftnsdateformatter

解决方案


设置dateFormatter.dateStyle = .none使它工作,但我想你需要以格式dateStyle打印。因此,我使用了两个单独的 ,一个用于 the ,另一个用于.dateStringToday, 12:15 pdateFormattersdateStyetimeStyle

let dateFormatterForDate = DateFormatter()
dateFormatterForDate.dateStyle = .short
dateFormatterForDate.doesRelativeDateFormatting = true

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale.current
dateFormatter.timeStyle = .short
dateFormatter.amSymbol = "a"
dateFormatter.pmSymbol = "p"

let str = "\(dateFormatterForDate.string(from: Date())), " + "\(dateFormatter.string(from: Date()))"
print(str)

输出Today, 1:15 a


推荐阅读