How to convert NSTimeInterval to int? How to convert NSTimeInterval to int? ios ios

How to convert NSTimeInterval to int?


Direct assignment:

NSTimeInterval interval = 1002343.5432542;NSInteger time = interval;//time is now equal to 1002343

NSTimeInterval is a double, so if you assign it directly to a NSInteger (or int, if you wish) it'll work. This will cut off the time to the nearest second.

If you wish to round to the nearest second (rather than have it cut off) you can use round before you make the assignment:

NSTimeInterval interval = 1002343.5432542;NSInteger time = round(interval);//time is now equal to 1002344


According to the documentation, NSTimeInterval is just a double:

typedef double NSTimeInterval;

You can cast this to an int:

seconds = (int) myTimeInterval;

Watch out for overflows, though!


In Swift 3.0

let timestamp = round(NSDate().timeIntervalSince1970)

enter image description here