我需要找到两个 Unix epoch time
之间的区别。
let currentTime = Date().timeIntervalSince1970
let comingFromTheServer = TimeInterval(1552078800000)
如何在两次之间找到几分钟的差异?两者都是当地时区的Epoch time
编辑
let currentTime = Date().timeIntervalSince1970 // printing 25842307795.623497 which is somewhere in january
let startedTinme = TimeInterval(1552090800000 / 1000)
print((currentTime - startedTinme) / 60)
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.minute, .second]
formatter.unitsStyle = .abbreviated
let formatted = formatter.string(for: currentTime - startedTinme)
print(formatted)
编辑2
我想发生了一些沟通不畅。我想找出current time
与specific
时间之间的区别。我尝试了代码的(更新)版本:
我正在使用此扩展名来获得当前时间以毫秒(时代时间)
extension Date {
var millisecondsSince1970:Int {
return Int((self.timeIntervalSince1970 * 1000.0).rounded())
}
init(milliseconds:Int) {
self = Date(timeIntervalSince1970: TimeInterval(milliseconds) / 1000)
}
}
我从服务器(即1552086180000
)接收时间,即5:03 PM
我当前的时间是5:12 PM
。因此,差异应为9 Minutes
。为此,我正在使用
let currentTime = Date().millisecondsSince1970
let startedTinme = TimeInterval(1552086180000) / 1000
How can I get the difference of `9` minutes here ?
首先,您必须正确将服务器的时间转换为TimeInterval
。unix时间通常以毫秒为单位,而TimeInterval
为几秒钟,因此:
let currentTime = Date().timeIntervalSince1970
let comingFromTheServer = TimeInterval(1552078800000) / 1000
然后只计算差异并转换为分钟:
print((currentTime - comingFromTheServer) / 60) // 160
或格式:
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.minute, .second]
formatter.unitsStyle = .abbreviated
let formatted = formatter.string(from: currentTime - comingFromTheServer) ?? ""
print(formatted) // 160m 41s
考虑您的millisecondsSince1970
功能,只需将其转换回秒:
let currentTime = TimeInterval(Date().millisecondsSince1970) / 1000
let startedTime = TimeInterval(1552086180000) / 1000