Я пытаюсь сохранить и получить определенное время в пользовательских значениях по умолчанию для моего приложения (так как это повторяющиеся даты событий не имеет значения и игнорируется), но у меня есть эта странная проблема, где час правильно, но минуты и секунды неNSCalendar.dateFromComponents возвращает неправильное время
Вот мой код
var calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
var flags: NSCalendarUnit = .MinuteCalendarUnit | .HourCalendarUnit | .SecondCalendarUnit
var components = calendar?.components(flags, fromDate: NSUserDefaults.standardUserDefaults().valueForKey("breakfastTime") as NSDate!)
let test = calendar?.dateFromComponents(components!) as NSDate!
NSLog("Components: %@", components!)
NSLog("Date 1: %@", NSUserDefaults.standardUserDefaults().valueForKey("breakfastTime") as NSDate)
NSLog("Date 3: %@", test!)
компоненты правильно выводит время, как таковой
Components: <NSDateComponents: 0x17414a7c0>
Hour: 8
Minute: 30
Second: 0
и дата с orrectly извлекаются из значения по умолчанию пользователя
Date 1: 2015-01-28 07:30:00 +0000
(It's 7 rather than 8 but it makes sense, since it's stored at UTC)
Однако, это происходит при использовании dateFromComponents
Date 3: 0001-01-01 07:40:04 +0000
Я даже не понимаю, где 40 и 04 приходят из
Ого, я понятия не имею, как это имеет ничего общего с ним (это было мое понимание того, что TimeZones только сдвиг часов), но это работает. Благодаря! –