我需要做以下事情,我需要你的帮助:
我的代码看起来像这样(我稍后会将常量更改为从UITextField输入)
let currentDate = NSDate()
let dataformatterCurrent = NSDateFormatter()
dataformatterCurrent.dateFormat = "MMMM dd, yyyy, HH:mm"
let convertedCurrentDate = dataformatterCurrent.stringFromDate(currentDate)
let dateformatter = NSDateFormatter()
dateformatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateAskumar = "2015-10-08 14:25:37"
let date1 = dateformatter.dateFromString(dateAskumar)!
let diffDateComponents = NSCalendar.currentCalendar().components([NSCalendarUnit.Month, NSCalendarUnit.Day, NSCalendarUnit.Hour, NSCalendarUnit.Minute], fromDate: date1, toDate: currentDate, options: NSCalendarOptions.init(rawValue: 1))
请帮助我们如何使用NSUserDefaults保存diffDateComponents变量。
答案 0 :(得分:0)
将日期组件放入字典中,并将其存储在NSUserDefaults
。
示例:
let currentDate = NSDate()
let unitFlags: NSCalendarUnit = [.Month, .Day, .Hour, .Minute]
let components = NSCalendar.currentCalendar().components(unitFlags, fromDate: date1, toDate: currentDate, options: [])
let difference = ["months": components.month, "days": components.day, "hours": components.hour, "minutes": components.minute ]
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(difference, forKey: "difference")
这样您就不需要处理日期的字符串表示。当然,正如@rmaddy指出的那样,如果你总是将它与当前日期进行比较,你可以存储和检索另一个日期。
更新:我知道这不存储整个NSDateComponents
,因此如果您需要,则必须实施NSCoding
。但是如果你只对一些组件感兴趣,这对你来说已经足够了。