【发布时间】:2017-03-03 07:47:52
【问题描述】:
我正在尝试将 UTC 时间转换为本地时区,但它似乎根本没有转换它:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let date1 = dateFormatter.dateFromString(dateStringFromServer)!
dateFormatter.timeZone = NSTimeZone.localTimeZone()
let date2 = dateFormatter.dateFromString(dateStringFromServer)!
dateStringFromServer 是 UTC 日期的字符串表示形式。所以我希望 date1 使用 UTC,而 date2 使用 PDT(我的本地时区),但它们都是相同的。我的语法有问题吗?
这就是我得到的:
dateStringFromServer: 2016-10-21T05:24:26.000Z
date1: 2016-10-21 05:24:26 +0000
date2: 2016-10-21 05:24:26 +0000
如何让 date2 处于设备的本地时区?
【问题讨论】:
-
您是指特定设备上设置的当地时间吗?
-
是 ios 设备上的当地时间
-
如果您希望 date1 为 UTC,则对 date1 使用时区格式化程序。
dateFormatter.timeZone = NSTimeZone(name: "UTC") -
其实更关心的是date2,我想在设备的本地时区。如何检测本地时区?
-
您在这里做错了,将 serverDate 转换为 UTC,然后使用您当地时区的新日期。它会解决你的问题。
标签: swift swift2 timezone nsdate nsdateformatter