【发布时间】:2015-02-21 10:47:06
【问题描述】:
我住在丹麦 (UTC + 1),我正在使用一个 webapi,它自 1970 年 1 月 1 日 00:00:00 以来向我的应用程序发送一个 unix 时间戳。时间在未来(火车出发) 如果我检查 Numbers 或 Excel 中的时间戳,它会给我正确的时间
要计算距离火车发车的分钟数,我这样做:
let unixTimeTrainDeparture = 1419327780 //(or some time in the future)
let unixRightNow = NSDate().timeIntervalSince1970
let minutesToDeparture = (Int(unixTimeTrainDeparture) - Int(unixRightNow))/60
但是这给了 60 分钟太多了?
如果我做一个
let dateTest = NSDate(string: "1970-01-01 00:00:00 +0000")!
会给我 1 jan 1970 :01:00:00 +0000
这对我来说没有意义。就像 timeIntervalSince1970 给我的时间太少了 3600 秒,因为它从 1970-1-1 01:00 而不是 00:00 开始?这是一个错误还是它应该是这样?
我可以使用
let tz = NSTimeZone.defaultTimeZone()
let seconds = tz.secondsFromGMTForDate(NSDate())
然后从我的结果中减去秒数。但是,当我们进入夏季时会发生什么?
【问题讨论】:
标签: ios swift nsdate unix-timestamp