由于不同的时区域不同,两个数据量之间的差异有所不同-Swift 3



我需要在当前时间(以秒为单位)和未来的开始时间(几秒钟内从我的Web服务获取)之间找到差异。我已经编码以下内容:

    let currentTime = Int64(Date().timeIntervalSince1970)
    var time = Int64(timeArr[indexPath.row])
    print("(currentTime) vs (time)")
    time = time - currentTime
    print("difference in time : (time)")
    let seconds = time % 60
    let minutes = (time / 60) % 60
    let hours = (time / 3600)

我的控制台向我展示了此输出:

1480400929 vs 1480552620
difference in time : 151691

问题是我目前的时间是Tue Nov 29 2016 11:58:49,开始时间是2016-11-30 17:37:00,因此小时的差异应达到30个小时左右,而在不同时区域中需要时间大约42小时。我该如何解决?我也经历了许多问题,但没有任何效果。任何帮助,将不胜感激。

如果您想要Hours中的两个日期之间的区别,Minutesseconds可以使用DateComponent

let component = Calendar.current.dateComponents([.hour, .minute, .second], from: Date(), to: startDate)
let hours = component.hour ?? 0
let minutes = component.minute ?? 0
let seconds = component.second ?? 0

编辑:从miliseconds获得使用Date(timeIntervalSince1970:)的日期。

let startDate = Date(timeIntervalSince1970: miliSeconds / 1000)

也可以使用DateFormatter将字符串转换为日期。

let stringDate = "2016-11-30 17:37:00"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = TimeZone(abbreviation: "GMT")
if let startDate = dateFormatter.date(from: stringDate) {
    print(startDate)
}

相关内容

  • 没有找到相关文章

最新更新