如何从 Swift 中的服务器转换日期?
How to convert date from server in Swift?
我有一个结构应该给我来自服务器的正确日期,但它是零或者时间与本地时间不同,比如服务器 return 2021-09-08T20:52:47.001Z 但是当我想将它转换为 swift 我的代码为零的日期。
import Foundation
struct TimeManager{
static func editTime(withTime time:String) {
let serverDateFormatter:DateFormatter = {
let result = DateFormatter()
result.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSS"
result.timeZone = .current
return result
}()
let date = "2021-09-08T20:52:47.001Z"
let dateformat = serverDateFormatter.date(from: date)
print(dateformat)
}
}
我已经在 Whosebug 中测试了所有 link。我测试了这个 link 也
您需要进一步了解如何设置 dateFormat
字符串。您忘记了字符串中的 Z
。也作为警示。创建日期格式化程序对象非常昂贵。不要为每个要格式化的日期创建一个新日期。务必将其缓存并重复使用。
import Foundation
let serverDateFormatter:DateFormatter = {
let result = DateFormatter()
result.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SZ"
result.locale = Locale(identifier: "en_US_POSIX")
result.timeZone = TimeZone(secondsFromGMT: 0)
return result
}()
let date = "2021-09-08T20:52:47.001Z"
let dateformat = serverDateFormatter.date(from: date)
print(dateformat as Any)
我有一个结构应该给我来自服务器的正确日期,但它是零或者时间与本地时间不同,比如服务器 return 2021-09-08T20:52:47.001Z 但是当我想将它转换为 swift 我的代码为零的日期。
import Foundation
struct TimeManager{
static func editTime(withTime time:String) {
let serverDateFormatter:DateFormatter = {
let result = DateFormatter()
result.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSS"
result.timeZone = .current
return result
}()
let date = "2021-09-08T20:52:47.001Z"
let dateformat = serverDateFormatter.date(from: date)
print(dateformat)
}
}
我已经在 Whosebug 中测试了所有 link。我测试了这个 link 也
您需要进一步了解如何设置 dateFormat
字符串。您忘记了字符串中的 Z
。也作为警示。创建日期格式化程序对象非常昂贵。不要为每个要格式化的日期创建一个新日期。务必将其缓存并重复使用。
import Foundation
let serverDateFormatter:DateFormatter = {
let result = DateFormatter()
result.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SZ"
result.locale = Locale(identifier: "en_US_POSIX")
result.timeZone = TimeZone(secondsFromGMT: 0)
return result
}()
let date = "2021-09-08T20:52:47.001Z"
let dateformat = serverDateFormatter.date(from: date)
print(dateformat as Any)