如何转换NSTimeInterval为整数值?
我认为TimeInterval所值83.01837
。 我需要将其转换成83
。 我用Google搜索,但没有找到任何帮助。
如何转换NSTimeInterval为整数值?
我认为TimeInterval所值83.01837
。 我需要将其转换成83
。 我用Google搜索,但没有找到任何帮助。
直接分配:
NSTimeInterval interval = 1002343.5432542;
NSInteger time = interval;
//time is now equal to 1002343
NSTimeInterval是双重的,所以如果你直接分配到一个NSInteger的(或INT,如果你愿意的话)它会工作。 这将切断的时间精确到秒。
如果你想四舍五入到最接近的秒(而不是把它切断)你进行分配,然后才能使用轮:
NSTimeInterval interval = 1002343.5432542;
NSInteger time = round(interval);
//time is now equal to 1002344
根据该文件 , NSTimeInterval
仅仅是一个double
:
typedef double NSTimeInterval;
你可以施放此一int
:
seconds = (int) myTimeInterval;
当心溢出,但!
在雨燕3.0
let timestamp = round(NSDate().timeIntervalSince1970)
我怀疑从NSDate的NSTimeInterval值会溢出一个NSInteger。 你很可能需要一个很长很长。 (64位整数)。这些可存储鸣喇叭-大的整数值(-2 ^ 63〜2 ^ 63 -1)
long long integerSeconds = round([NSDate timeIntervalSinceReferenceDate]);
它看起来像一个NSInteger 可以存储NSTimeInterval,至少在未来几十年。 当前日期的timeIntervalSinceReferenceDate约为5.196亿,或约2 ^ 28。 在32位设备,和NSInteger的可容纳从-2 ^ 31〜2 ^ 31-1的值。 (2 ^ 31是2147483648
迅速4,5迅速
我只是投来Int64
:
Int64(Date().timeIntervalSince1970)
我有一个需要存储一个NSDate的雨燕号。 我用下面的投这是伟大的工作。
Double(startDateTime.timeIntervalSince1970)