Я пытаюсь понять, как NSCalendar
и его компоненты работают в Swift
. Я извлек компоненты с даты, изменил свойства компонентов и восстановил дату. Я ожидал получить Sept 9, 2015, 12:00 AM
, но вместо этого получил Sept 9, 2015, 8:00 AM
.dateFromComponents по умолчанию 8:00 AM
Почему часовой компонент в 8:00?
let calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
calendar?.timeZone = NSTimeZone(abbreviation: "GMT")!
let components = calendar?.components([.Year, .Month, .Day, .Hour, .Minute, .Second], fromDate: NSDate())
components?.year // 2016
components?.month // 9
components?.day // 9
components?.hour // 4
components?.minute // 31
components?.second // 54
components?.year = 2015
components?.month = 9
components?.day = 9
components?.hour = 0
components?.minute = 0
components?.second = 0
calendar?.dateFromComponents(components!) // Sept 9, 2015, 8:00 AM
приведенный выше код не предназначен для использования. это просто я пытаюсь понять, как NSCalendar
, NSDateComponents
и NSDate
связаны друг с другом.
Как вы смотрите на дату? Какой часовой пояс отображается для вывода даты? Это, вероятно, не проблема. – rmaddy