在使用 dateFromString 之后使用 NSTimeInterval

Using NSTimeInterval after using dateFromString

我在 swift 工作,我在使用 NSDateFormatter 和 NSTimeInterval 时遇到了问题。

我想做的是保存日期的字符串表示,然后将其转换回 NSDate 对象,然后找到该日期和当前时间之间的时间间隔。这给了我非常奇怪的答案,比如把时间间隔弄错了。当我之前打印出来时,日期本身是正确的,当我在正常日期使用它们时,时间间隔方法有效,所以我怀疑问题是我如何将日期转换为字符串然后再转换回来。下面是一些代码:

保存日期:

       var date = NSDate()
       var dateformatter = NSDateFormatter()
       dateformatter.dateStyle = .ShortStyle
       dateformatter.timeStyle = .ShortStyle

       newContact.lastCallDate = dateformatter.stringFromDate(date)

正在检索日期并计算时间间隔:

    let dateformatter = NSDateFormatter()
    dateformatter.dateStyle = .ShortStyle
    dateformatter.timeStyle = .ShortStyle
    let date2 = dateformatter.dateFromString(newContact.lastCallDate)
    println(date2)

    let last = date2?.timeIntervalSince1970

    let current = NSDate().timeIntervalSince1970

    let timeElapsed = current - last!

这种方法只节省几分钟。我的建议是保存为时间间隔

var interval = NSDate().timeIntervalSince1970

然后像这样将时间添加到 1970 年日期来加载它

var date = NSDate(timeIntervalSince1970: interval)