Gul*_*han -1 date swift 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()
}
Run Code Online (Sandbox Code Playgroud)
当xcode执行此行时
let dateString = formatter.string(from: self)
Run Code Online (Sandbox Code Playgroud)
结果是我想要的格式,但是当最后一行被执行时,date返回旧的formate
你做错了.如果需要显示日期,则使用格式化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)
}
Run Code Online (Sandbox Code Playgroud)
你很困惑.一个Date对象不具有的格式.它记录了一个时刻.您必须将其转换为日期字符串以为其提供格式.
你的代码做到了,这很好.但是,您要做的最后一件事是将其转换回a Date,并丢弃您创建的格式化字符串.这是没有意义的.
服务器很可能需要日期字符串.您应该重写函数以返回日期字符串,如Rakesha Shastri的答案.
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |