我的服务器是用Java构建的,因此我的Android应用程序(显然)。对于某些操作,我需要应用程序的时间戳。我将该时间戳存储在服务器上。对于服务器和android,我使用System.currentTimeMillis()
。那么我应该使用什么iOS或Objective-C功能,所以时间是一样的?我应该使用CFAbsoluteTimeGetCurrent()
还是NSTimeInterval timeInMiliseconds = [[NSDate date] timeIntervalSince1970]
。同样,我需要时间,以毫秒为单位。
更便宜,更快更好,所以我在想CFAbsoluteTimeGetCurrent()
。但这似乎不是正确使用的。这是为什么?
无论如何,最好的方法是什么?
答案 0 :(得分:0)
我建议使用[[NSDate date] timeIntervalSince1970]
,它总是以秒为单位指定。此外,它在10,000年的范围内产生亚毫秒精度。
只需将结果乘以1000即可获得毫秒数。
currentTimeMillis()
相当于[[NSDate date] timeIntervalSince1970] * 1000
请注意,如果日期对象早于1970年1月1日格林尼治标准时间中午12:00,则返回值为负。
CFAbsoluteTimeGetCurrent()
返回相对于2001年1月1日00:00:00 GMT的绝对参考日期的秒数。
例如,绝对时间-32940326相当于1999年12月16日17:54:34。