时间戳斯威夫特
问题描述:
我确定当前时间迅速与此代码时间戳斯威夫特
let currentDate = Date().timeIntervalSince1970 * 1000
结果看起来像
1493199752604.24
所获得的数值是以毫秒为单位对不对?值是什么.
?
我需要确定两个这样的日期之间的差异是否等于或大于2小时。
if (currentDate - oldDate >= 7200000){
// do something
}
这段代码正确吗?
答
尝试使用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""
}
VAR时间戳:字符串{ 返回 “\(的NSDate()timeIntervalSince1970 * 1000)” } 这样称呼它就像时间戳 –
这个神秘的*“'。”里面的值“*”表示'timeIntervalSince1970'返回一个*浮点数*(你可以从文档中看到,或者通过命令单击属性名称在Xcode中)。 –
TimeInterval以秒为单位,在'.'之后,您已经得到第二部分 – Kubba