2017-05-04 47 views
-1

你知道为什么以下时间没有回到正确的时间吗?DateFormatter正在转换错误

let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm" 
let date = dateFormatter.date(from: "2017-05-04 15:00") 
print(date) 

它返回Optional(2017-05-04 13:00:00 +0000) 我猜它与时区做。如果为什么我需要知道服务器上的时间区域?

我只是想转换值。

+0

您是在GMT + 2时区。在您的位置15:00 UTC是13:00。一切都是对的! –

+0

我明白了,但服务器已经在我的时区给了我正确的时间。所以我只需要在没有任何时区更正的情况下进行转换。 –

+4

'日期'是绝对时间点,没有时区。打印日期(或获取其“说明”)始终使用UTC区域。你的日期**是**正确的。 “2017-05-04 13:00:00 +0000”与GMT + 2区域中的“2017-05-04 15:00”的时间点相同。 –

回答

-1

尝试加入这一行:

dateFormatter.locale = Locale(identifier: "en_US_POSIX")