无法更改 swift 中的日期格式
Unable to change format of date in swift
我正在获取这样的日期 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)
结果是我想要的格式,但是当最后一行被执行时日期returns回到旧格式
你做错了。如果需要显示日期,请使用格式化的 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)
}
你糊涂了。 Date
对象没有格式。它记录了一个时刻。您必须将其转换为日期 String 以赋予其格式。
您的代码可以做到这一点,这很好。但是,您做的最后一件事是将其转换回 Date
,并丢弃您创建的格式化字符串。这毫无意义。
服务器很可能需要日期字符串。您应该将函数重写为 return 日期字符串,如 Rakesha Shastri 的回答。
我正在获取这样的日期 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)
结果是我想要的格式,但是当最后一行被执行时日期returns回到旧格式
你做错了。如果需要显示日期,请使用格式化的 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)
}
你糊涂了。 Date
对象没有格式。它记录了一个时刻。您必须将其转换为日期 String 以赋予其格式。
您的代码可以做到这一点,这很好。但是,您做的最后一件事是将其转换回 Date
,并丢弃您创建的格式化字符串。这毫无意义。
服务器很可能需要日期字符串。您应该将函数重写为 return 日期字符串,如 Rakesha Shastri 的回答。