我尝试将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处于设备的本地时区?
3条答案
按热度按时间ni65a41a1#
如果要转换为设备上设置的时区,可以执行以下操作
快速3
swift2
5uzkadbs2#
这是一样的,因为即使你认为你是在设置第一个日期 * 之后 * 将日期格式化程序的时区设置为当前时区,这也没有关系。如果你没有设置日期格式化程序的时区,它会自动设置为苹果公司的
NSDateFormatter
文档中指定的系统时区:如果未指定,则使用系统时区。
因此,日期格式化程序的时区对于第一个日期隐式地设置为相同,对于第二个日期显式地设置为相同,因为它们碰巧是相同的,因此返回的是相同的日期。
7kjnsjlb3#
以下是在swift 4中运行的代码。
如何用途:-