用DateFormatter显示日期

时间:2016-12-11 10:21:04

标签: swift nsdateformatter

我正在寻找一种使用Swift 3在标签中显示当前日期的方法。 目前我正在使用DateFormatter.dateFormat,但我得到的唯一输出是

  

DD.MM.YYYY

以下是代码行:

lbl_Date.text = DateFormatter.dateFormat(fromTemplate: "MMddyyyy", options: 0, locale: NSLocale(localeIdentifier: "de-AT") as Locale)

我今天的预期输出应该是:

  

11.12.2016

我知道我可以通过dateTimeComponents获得时间,但我还没弄明白我如何才能获得标签中的日期(日,月和年):

// get the current date and time
    let currentDateTime = Date()

    // get the user's calendar
    let userCalendar = Calendar.current

    // choose which date and time components are needed
    let requestedComponents: Set<Calendar.Component> = [
        .year,
        .month,
        .day,
        .hour,
        .minute,
        .second
    ]

    // get the components
    let dateTimeComponents = userCalendar.dateComponents(requestedComponents, from: currentDateTime)

在我的标签中显示当前日期的最简洁方法是什么?

1 个答案:

答案 0 :(得分:5)

忘记CalendarDateComponents。使用DateFormatter

let currentDateTime = Date()
let formatter = DateFormatter()

如果您想要固定格式,请将dateFormat设置为

formatter.dateFormat = "dd.MM.yyyy"

或者,如果您想要一种格式,具体取决于当前的区域设置集timeStyledateStyle而不是format属性

formatter.timeStyle = .none
formatter.dateStyle = .medium

现在获取字符串

let dateString = formatter.string(from: currentDateTime)