【发布时间】:2017-02-01 22:02:44
【问题描述】:
我正在研究 Swift 中的日期格式,并尝试将字符串日期转换为 NSDate 并将 NSSate 转换为字符串日期(ISO 8601 格式)。
这是我的代码
let stringDate = "2016-05-14T09:30:00.000Z" // ISO 8601 format
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" // ISO 8601
let date = dateFormatter.dateFromString(stringDate)
print("Date = \(date)") // Output is 2016-05-14 16:30:00 +0000
// Again converting it date to string using stringFromDate
print("\(dateFormatter.stringFromDate(date!))") // 2016-05-14T09:30:00.000Z
我试图了解为什么我会收到 GMT 格式的 NSDate(从 09:30 到 16:30 时间增加 7 小时)?
如果我将该 NSDate date 变量转换为字符串,那么我将得到原始字符串日期。这里发生了什么?
【问题讨论】:
-
您的目标是 macOS 10.12 或更高版本吗?有一个新课程
ISO8601DateFormatter可能会有所帮助。 -
没有。我正在使用 macOS 10.11.6 和 iOS 9。我将检查这个类
ISO8601DateFormatter。谢谢。
标签: ios swift nsdate nsdateformatter iso8601