swift的时区 - NSDate

时间:2016-02-21 18:13:14

标签: swift timezone nsdate

我正在使用xCode 7.2.1和Swift2,写作iOS。

我做了一个将String转换为NSDate的函数,以及

class func StringToDateWithHour(data : String) -> NSDate { let dateFormatter = NSDateFormatter() dateFormatter.timeZone = NSTimeZone(abbreviation: "CET"); dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" guard let date = dateFormatter.dateFromString(data) else{ return NSDate() } return date }

我不明白为什么我会回到UTC时间,也就是CET时间的INSTEAD。 当我尝试转换字符串时:" 2016-2-21 10:00:00"我回来了 " 2016-2-21 09:00:00" ,少一个小时。 谢谢。

1 个答案:

答案 0 :(得分:0)

您说要将上午10点的CET转换为NSDate。 这正确输出上午9点的UTC时间(UTC比CET时间晚一个小时)。

NSDate对象不依赖于时区,它们只是来自特定时间点的数据。

  

NSDate对象封装单个时间点,与任何特定的日历系统或时区无关。日期对象是不可变的,表示相对于绝对参考日期(2001年1月1日00:00:00 UTC)的不变时间间隔。

相关问题