我是一名中级swift ios开发人员,现在正在开发一个应用程序,我需要使用从当前日期和时间生成的纪元时间,为此我尝试了以下代码
var date = NSDate()
var timestamp = (floor(date.timeIntervalSince1970 * 1000))
获得Float值有些像1411032097112.0 .. 但在我的情况下,我只需要此结果的整数部分。这是实现这一目标的最佳方式还是有其他最佳解决方案?
谢谢
答案 0 :(得分:15)
怎么样
var timestamp = UInt64(floor(date.timeIntervalSince1970 * 1000))
<小时/> 编辑:
正如@MartinR在他的回答中指出的那样,由于32位设备中的空间限制,Int64
将是比Int
更好的选择。 UInt64
会更好,因为你得到的时间间隔总是积极的。
答案 1 :(得分:9)
您只需将浮点值转换为Int64
:
let date = NSDate()
let timestamp = Int64(date.timeIntervalSince1970 * 1000.0)
println(timestamp)
// 1411034055289
您应该使用Int64
或UInt64
而不是Int
,因为后者在32位设备上只有32位,这在时间上不够大(以毫秒为单位)。< / p>