是否可以仅使用月份和日期从日期获取本地化字符串?
let localizedDate = DateFormatter.localizedString(from: date, dateStyle: .medium, timeStyle: .none)
这打印Sept 15, 2017
或15 Sep 2017
。
我想尊重用户的日期格式,而不是显示年份,只显示月份和日期。我的意思是Sept 15
或15 Sep
。可能吗?
是否可以仅使用月份和日期从日期获取本地化字符串?
let localizedDate = DateFormatter.localizedString(from: date, dateStyle: .medium, timeStyle: .none)
这打印Sept 15, 2017
或15 Sep 2017
。
我想尊重用户的日期格式,而不是显示年份,只显示月份和日期。我的意思是Sept 15
或15 Sep
。可能吗?
您可以仅为日和月创建格式,并使用它来创建格式模板。DateFormatter 然后将其本地化。作为(Xcode9)游乐场的示例:
let date = Date()
let customFormat = "ddMMMM"
let gbLocale = Locale(identifier: "en_GB")
let ukFormat = DateFormatter.dateFormat(fromTemplate: customFormat, options: 0, locale: gbLocale)
let usLocale = Locale(identifier: "en_US")
let usFormat = DateFormatter.dateFormat(fromTemplate: customFormat, options: 0, locale: usLocale)
let formatter = DateFormatter()
formatter.dateFormat = ukFormat
formatter.string(from: date) // -> "09 September"
formatter.dateFormat = usFormat
formatter.string(from: date) // -> "September 09"
如果您传入Locale.current
templateFormatter 而不是我创建的示例,那么您将获得模板的本地化版本。
您的问题询问短月份格式,因此您可以将自定义格式中的“MMMM”替换为“MMM”,以显示缩短的月份名称而不是完整的月份名称。和一个“d”而不是“dd”,在日期中没有前导“0”。我相信你知道我的意思。