DateFormatter localizedString - 只有一天,一个月,一年没有
问题描述:
是否有可能得到本地化的字符串从日期只有月份和日子?DateFormatter localizedString - 只有一天,一个月,一年没有
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而不是那些例子,我创建,那么你会得到你的模板的本地化版本。
你的问题询问有关短短的一个月格式,所以你可以在“MMM”自定义格式替换“MMMM”得到显示,而不是一个充分缩短一个月名。和“d”而不是“dd”在日期中不具有前导“0”。我相信你明白我的意思。
听起来不错。需要检查;) –