【发布时间】:2017-07-29 12:42:37
【问题描述】:
我正在从服务器获取日期字符串,例如“2017-08-05T00:30:00.000+02:00”。以下是我的日期格式化程序代码。
let dateFormatter: DateFormatter = DateFormatter()
let serverDateString = "2017-08-05T00:30:00.000+02:00"
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZZ"
dateFormatter.locale = Foundation.Locale(identifier: "en_US_POSIX")
let currentDate: Date = dateFormatter.date(from: serverDateString)!
但它返回 2017-08-04 22:30:00 +0000。这是错误的。有什么建议吗?
【问题讨论】:
-
你希望你的 dateformatter 采用哪种格式
-
我想让它回复我这个 2017-08-05 00:30:00 +0000 的谎言。它确实以这种格式返回我,但日期和时间不正确。现在它正在返回 2017-08-04 22:30:00 +0000。相反,它应该返回 2017-08-05 00:30:00 +0000。
-
使用这个nsdateformatter.com可以帮助你我认为
-
2017-08-05T00:30:00.000+02:00和2017-08-04 22:30:00 +0000是在不同时区表示的同一时刻。就像伦敦的早上 7 点 (GMT+0) 是雅典的早上 9 点 (GMT+2)。你为什么期待2017-08-05 00:30:00 +0000?您想从服务器的响应中删除时区信息吗?
标签: ios iphone swift nsdateformatter dateformatter