无法快速更改日期格式

时间:2019-01-02 13:25:56

标签: swift date dateformatter

我现在正在这样获取日期2019-01-02 18:10:00 +0000,我想将其转换为dd/MM/yyyy HH:mm格式,但是我无法获取。

我在延期中使用此方法

func getDate() -> Date {
    let formatter = DateFormatter()
    formatter.timeZone = TimeZone(abbreviation: "UTC")
    formatter.dateFormat = "dd/MM/yyyy HH:mm"
    let dateString = formatter.string(from: self)
    return formatter.date(from: dateString) ?? Date()
}

xcode执行此行时

let dateString = formatter.string(from: self)

结果是我想要的格式,但是当执行最后一行时,日期返回到旧格式

2 个答案:

答案 0 :(得分:5)

您做错了。如果需要显示日期,请使用格式化的String而不是Date对象。

func getDate() -> String {
    let formatter = DateFormatter()
    // Set the appropriate time zone or locale
    formatter.dateFormat = "dd/MM/yyyy HH:mm"
    return formatter.string(from: self)
}

答案 1 :(得分:5)

您很困惑。 Date对象没有格式。它记录时间。您必须将其转换为日期 String 以为其提供格式。

您的代码可以做到这一点,这很好。但是,您要做的最后一件事是将其转换回Date,并丢弃您创建的格式化字符串。那没有道理。

服务器很可能需要日期字符串。您应该重写函数以返回日期字符串,如Rakesha Shastri的回答一样。