如何转换NSTimeInterval为int?(How to convert NSTimeInter

2019-06-25 14:54发布

如何转换NSTimeInterval为整数值?

我认为TimeInterval所值83.01837 。 我需要将其转换成83 。 我用Google搜索,但没有找到任何帮助。

Answer 1:

直接分配:

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


Answer 2:

根据该文件 , NSTimeInterval仅仅是一个double

typedef double NSTimeInterval;

你可以施放此一int

seconds = (int) myTimeInterval;

当心溢出,但!



Answer 3:

在雨燕3.0

let timestamp = round(NSDate().timeIntervalSince1970)



Answer 4:

我怀疑从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



Answer 5:

迅速4,5迅速

我只是投来Int64

Int64(Date().timeIntervalSince1970)


Answer 6:

我有一个需要存储一个NSDate的雨燕号。 我用下面的投这是伟大的工作。

Double(startDateTime.timeIntervalSince1970)


文章来源: How to convert NSTimeInterval to int?