Swift DateFormatter amSymbol不与doesRelativeDateFormatting工作?&



我在以下代码中遇到了麻烦:

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())

输出=比;字符串"今天,12:15 PM">

amSymbolpmSymbol如果doesRelativeDateFormatting= false, WithdoesRelativeDateFormatting如果设置为true,则amSymbol和pmSymbol setter似乎没有任何区别。

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

设置dateFormatter.dateStyle = .none使其工作,但我认为您需要dateStyleToday, 12:15 p格式打印dateString。因此,我使用了两个单独的dateFormatters,一个用于dateStye,另一个用于timeStyle

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