Swift 使用DateFormatter返回iOS锁屏日期样式

Swift 使用DateFormatter返回iOS锁屏日期样式,swift,nsdateformatter,Swift,Nsdateformatter,DateFormatter类似乎有五种日期样式:none、short、medium、long和full。但是,这些似乎都没有返回锁屏日期样式,如下所示: Tuesday, 6 June 使用DateFormatter的.long样式也会返回年份: Tuesday, 6 June 2017 此外,此锁定屏幕日期样式将随当前本地化/区域设置而更改 是否有方法返回日期,即iOS锁定屏幕日期样式(以及本地化更改)?您可以使用自定义日期格式“EEEE,d MMMM” Swift 3 let date

DateFormatter类似乎有五种日期样式:none、short、medium、long和full。但是,这些似乎都没有返回锁屏日期样式,如下所示:

Tuesday, 6 June
使用DateFormatter的
.long
样式也会返回年份:

Tuesday, 6 June 2017
此外,此锁定屏幕日期样式将随当前本地化/区域设置而更改


是否有方法返回日期,即iOS锁定屏幕日期样式(以及本地化更改)?

您可以使用自定义日期格式“EEEE,d MMMM”

Swift 3

let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEEE, d MMMM"
dateFormatter.string(from: date)

// Friday, 4 August

您可以获取任意日期组件组合的本地化格式:

let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.setLocalizedDateFormatFromTemplate("EEEE MMMM d")

print(dateFormatter.string(from: date)) // Friday, 4 August
西班牙文:

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "es")
dateFormatter.setLocalizedDateFormatFromTemplate("EEEE MMMM d")

print(dateFormatter.string(from: date)) // viernes, 4 de agosto

请注意组件顺序是如何自动更改并插入正确的分隔符的。

我认为Swift 3版本是
.string(from:date)
而不是
.stringFromDate(date)