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