Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在使用dateFromString之后使用NSTimeInterval_Swift_Date_Nsdate_Nsdateformatter_Nstimeinterval - Fatal编程技术网

Swift 在使用dateFromString之后使用NSTimeInterval

Swift 在使用dateFromString之后使用NSTimeInterval,swift,date,nsdate,nsdateformatter,nstimeinterval,Swift,Date,Nsdate,Nsdateformatter,Nstimeinterval,我在swift工作,在NSDateFormatter和NSTimeInterval方面遇到问题 我试图做的是保存日期的字符串表示形式,然后将其转换回NSDate对象,然后查找该日期与当前时间之间的时间间隔。这给了我非常奇怪的答案,比如把时间间隔搞错了。在我之前打印日期时,日期本身是正确的,而在正常日期上使用时间间隔方法时,时间间隔方法是有效的,因此我怀疑问题在于如何将日期转换为字符串,然后再转换回来。下面是一些代码: 保存日期: var date = NSDate()

我在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)

请显示原始日期、转换字符串、转换日期和时间间隔的值。