在Swift中生成时间戳

5

我是一名中级的Swift iOS开发者,现在正在开发一个应用程序,在该应用程序中我需要使用从当前日期和时间生成的时代时间。为此,我尝试了以下代码:


let epochTime = Int(Date().timeIntervalSince1970)
var date = NSDate()
var timestamp = (floor(date.timeIntervalSince1970 * 1000))

我需要获取一个类似于1411032097112.0的浮点数值,但是在我的情况下,我只需要这个结果的整数部分。这是实现此目的的最佳方式,还是有其他更好的解决方案?

谢谢

2个回答

19

如何呢?

var timestamp = UInt64(floor(date.timeIntervalSince1970 * 1000))


编辑:

正如@MartinR在他的答案中指出的那样,由于32位设备上的空间限制,Int64Int更好。UInt64将是更好的选择,因为你得到的时间间隔总是正数。


3
在这种情况下,时间间隔将始终为正数。一般情况下,时间间隔可能为负数。 - David Berry

9
您可以将浮点数值转换为Int64
let date = NSDate()
let timestamp = Int64(date.timeIntervalSince1970 * 1000.0)
println(timestamp)
// 1411034055289

为了计算以毫秒为单位的时间,应该使用Int64UInt64,而不是Int,因为在32位设备上,后者仅为32位,不足以表示需要的大数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接