时间戳斯威夫特

时间戳斯威夫特

问题描述:

我确定当前时间迅速与此代码时间戳斯威夫特

let currentDate = Date().timeIntervalSince1970 * 1000 

结果看起来像

1493199752604.24 

所获得的数值是以毫秒为单位对不对?值是什么.

我需要确定两个这样的日期之间的差异是否等于或大于2小时。

if (currentDate - oldDate >= 7200000){ 
// do something 
} 

这段代码正确吗?

+0

VAR时间戳:字符串{ 返回 “\(的NSDate()timeIntervalSince1970 * 1000)” } 这样称呼它就像时间戳 –

+3

这个神秘的*“'。”里面的值“*”表示'timeIntervalSince1970'返回一个*浮点数*(你可以从文档中看到,或者通过命令单击属性名称在Xcode中)。 –

+0

TimeInterval以秒为单位,在'.'之后,您已经得到第二部分 – Kubba

尝试使用Swift的更多优惠。尝试使用dateComponents以小时为单位获取差值。

let calendar = NSCalendar.current 

let hours = calendar.dateComponents([.hour], from: Date(), to: Date()) 
+0

让calendar = NSCalendar.current 让hours = calendar.dateComponents([。hour],from:Date(),到:oldDate)这将以小时计算当前日期和oldDate之间的差异?例如,如果差异是两天,结果将是48? –

+0

@ J.Doe是的,你是对的 –

是的,它工作正常。结帐这个例子 为差超过2小时

let currentDate = Date().timeIntervalSince1970*1000 
let calendar = NSCalendar.current 
let yesteraysDate = calendar.date(byAdding: .day, value: -1, to: Date()) 
let oldDate = yesteraysDate!.timeIntervalSince1970*1000 
if (currentDate - oldDate >= 7200000){ 
    print("greater or equal than two hour") //"greater or equal than two hour" 
} else { 
    print("smaller than two hour") 
} 

如果差小于2小时

let currentDate = Date().timeIntervalSince1970*1000 
let calendar = NSCalendar.current 
let yesteraysDate = calendar.date(byAdding: .hour, value: -1, to: Date()) 
let oldDate = yesteraysDate!.timeIntervalSince1970*1000 
if (currentDate - oldDate >= 7200000){ 
    print("greater or equal than two hour") 
} else { 
    print("smaller than two hour") //"smaller than two hour"" 
}