我现在正在这样获取日期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)
结果是我想要的格式,但是当执行最后一行时,日期返回到旧格式
答案 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的回答一样。