NSDate timeIntervalSince1970 not working in Swift?

NSDate timeIntervalSince1970 not working in Swift?

1432233446145 most probably is a time interval given in milliseconds:

let date = NSDate(timeIntervalSince1970: 1432233446145.0/1000.0)
print(date is (date))
// date is 2015-05-21 18:37:26 +0000

Swift 3 and later:

let date = Date(timeIntervalSince1970: 1432233446145.0/1000.0)

I think your timestamp is incorrect. This results in your date being september 2nd, 47355.

If I use the following I get the date for (right about) now:

let date = NSDate(timeIntervalSince1970: 1431024488)
println(date is (date))
// date is 2015-05-07 18:48:08 +0000

The printed date is not a localized timestamp, so youll have to do some localization of your own I suppose. An example:

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

And for completeness I also checked with an expiration date thats 1100 seconds larger than the initial date:

let expirationDate = NSDate(timeIntervalSince1970: 1431025588)
let diff = expirationDate.timeIntervalSinceDate(date)
println(expires in: (diff))
// expires in: 1100.0

So, the timeIntervalSince1970 seems to work fine, I think your interval was just not what you wanted it to be.

NSDate timeIntervalSince1970 not working in Swift?

From your code and the log content follows:

date.isEqual(expirationDate)

–> Your stuff has just expired :-).

Leave a Reply

Your email address will not be published.