DateFormatter和夏时制

我正在尝试格式化有关当前时区的日期

 让formatter = DateFormatter() 
formatter.dateFormat =“ yyyy-MM-dd HH:mm:ss Z”
formatter.timeZone = TimeZone.current
 让日期=日期(timeIntervalSince1970:1470309336) 
打印(formatter.string(来自:日期))

它打印2016–08–04 13:15:36 +0200. 截止到今天,2017年2月3日,我希望它是2016–08–04 13:15:36 +0100因为我现在在格林尼治标准时间+1。 我们尚未输入夏令时。

事实证明, DateFormatter会考虑目标日期,而不是我们当前的时间,这可能是您想要的,也可能不是。 目标日期是2016年8月4日,即夏令时期间

如果要使用当前时间的时区,这是解决方法

  formatter.timeZone = TimeZone(secondsFromGMT:TimeZone.current.secondsFromGMT()) 

根据需要打印2016–08–04 12:15:36 +0100

此外, TimeZone具有isDaylightSavingTime ,这可能会有所帮助