如何在Swift 4中显示日期而不包含年份?

时间:2018-10-04 22:49:12

标签: swift date

使用DateFormatter完整样式时,如何删除年份。我希望它显示这样的日期,例如:(10月4日,星期四)。不包括年份。

目前,我有:

func todaysDate() {
    dateLabel.text = DateFormatter.localizedString(from: NSDate() as Date, dateStyle: DateFormatter.Style.full, timeStyle: DateFormatter.Style.none)
}

1 个答案:

答案 0 :(得分:0)

如果要使用正确本地化但自定义的格式,则需要使用setLocalizedDateFormatFromTemplate

func todaysDate() {
    let df = DateFormatter()
    df.setLocalizedDateFormatFromTemplate("EEEEMMMMd")
    dateLabel.text = df.string(from: Date())
}

EEEE给出了完整的工作日名称。 MMMM给出了完整的月份名称。 d给出一个月中的某天。

根据用户的语言环境,结果格式将以正确的顺序添加适当的标点符号。

还要注意,没有理由使用NSDate

作为补充,我将重构您的代码,使其更像这样:

func todaysDate() -> String {
    let df = DateFormatter()
    df.setLocalizedDateFormatFromTemplate("EEEEMMMMd")
    return df.string(from: Date())
}

然后是您当前的呼叫位置:

todaysDate()

我会做的:

dateLabel.text = todaysDate()