我正在使用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" ,少一个小时。 谢谢。
答案 0 :(得分:0)
您说要将上午10点的CET转换为NSDate。 这正确输出上午9点的UTC时间(UTC比CET时间晚一个小时)。
NSDate对象不依赖于时区,它们只是来自特定时间点的数据。
NSDate对象封装单个时间点,与任何特定的日历系统或时区无关。日期对象是不可变的,表示相对于绝对参考日期(2001年1月1日00:00:00 UTC)的不变时间间隔。