NSDate timeIntervalSince1970 在 Swift 中不起作用?
NSDate timeIntervalSince1970 not working in Swift?
我正在 swift:
let date = NSDate(timeIntervalSince1970: 1432233446145.0)
println("date is \(date)")
日志给了我这个:
date is 47355-09-02 23:55:45 +0000
然后我尝试返回一个时间间隔以进行测试:
let tI = expirationDate.timeIntervalSinceDate(date)
println("tI = \(tI)")
我得到:
tI = 0.0
我做错了什么?
我似乎可以使 timeIntervalSince1970 调用正常工作。 Swift 中是否有任何已知的问题,或者我在这里遗漏了什么?
根据您的代码和日志内容如下:
date.isEqual(expirationDate)
--> 你的东西刚刚过期:-).
1432233446145
很可能是以 毫秒为单位给出的时间间隔:
let date = NSDate(timeIntervalSince1970: 1432233446145.0/1000.0)
print("date is \(date)")
// date is 2015-05-21 18:37:26 +0000
Swift 3 及以后:
let date = Date(timeIntervalSince1970: 1432233446145.0/1000.0)
我认为您的时间戳不正确。这导致您的日期是 9 月 2 日,47355。
如果我使用以下内容,我会得到(大约)现在的日期:
let date = NSDate(timeIntervalSince1970: 1431024488)
println("date is \(date)")
// "date is 2015-05-07 18:48:08 +0000"
打印的日期不是本地化的时间戳,所以我想你必须自己做一些本地化。一个例子:
let formatter = NSDateFormatter()
formatter.dateFormat = "dd-MM-yyyy HH:mm:ss"
println("formatted date is \(formatter.stringFromDate(date))")
// "formatted date is 07-05-2015 20:48:08"
为了完整起见,我还检查了比初始日期大 1100 秒的到期日期 date
:
let expirationDate = NSDate(timeIntervalSince1970: 1431025588)
let diff = expirationDate.timeIntervalSinceDate(date)
println("expires in: \(diff)")
// "expires in: 1100.0"
所以,timeIntervalSince1970 似乎工作正常,我认为你的时间间隔不是你想要的。
我正在 swift:
let date = NSDate(timeIntervalSince1970: 1432233446145.0)
println("date is \(date)")
日志给了我这个:
date is 47355-09-02 23:55:45 +0000
然后我尝试返回一个时间间隔以进行测试:
let tI = expirationDate.timeIntervalSinceDate(date)
println("tI = \(tI)")
我得到:
tI = 0.0
我做错了什么? 我似乎可以使 timeIntervalSince1970 调用正常工作。 Swift 中是否有任何已知的问题,或者我在这里遗漏了什么?
根据您的代码和日志内容如下:
date.isEqual(expirationDate)
--> 你的东西刚刚过期:-).
1432233446145
很可能是以 毫秒为单位给出的时间间隔:
let date = NSDate(timeIntervalSince1970: 1432233446145.0/1000.0)
print("date is \(date)")
// date is 2015-05-21 18:37:26 +0000
Swift 3 及以后:
let date = Date(timeIntervalSince1970: 1432233446145.0/1000.0)
我认为您的时间戳不正确。这导致您的日期是 9 月 2 日,47355。
如果我使用以下内容,我会得到(大约)现在的日期:
let date = NSDate(timeIntervalSince1970: 1431024488)
println("date is \(date)")
// "date is 2015-05-07 18:48:08 +0000"
打印的日期不是本地化的时间戳,所以我想你必须自己做一些本地化。一个例子:
let formatter = NSDateFormatter()
formatter.dateFormat = "dd-MM-yyyy HH:mm:ss"
println("formatted date is \(formatter.stringFromDate(date))")
// "formatted date is 07-05-2015 20:48:08"
为了完整起见,我还检查了比初始日期大 1100 秒的到期日期 date
:
let expirationDate = NSDate(timeIntervalSince1970: 1431025588)
let diff = expirationDate.timeIntervalSinceDate(date)
println("expires in: \(diff)")
// "expires in: 1100.0"
所以,timeIntervalSince1970 似乎工作正常,我认为你的时间间隔不是你想要的。