Добавление минут к дате в Swift добавляет дополнительный час - PullRequest
0 голосов
/ 10 марта 2019

Предполагается, что мой код получает дату из средства выбора даты, затем добавляет к нему день (1440 минут) и затем обновляет средство выбора даты, чтобы отразить это. Проблема в том, что он добавляет день плюс один час.

let originalDate = dtPickerBed.date
var dateAlarmBedLocal = originalDate.date.adding(minutes: 1440)
//save dateAlarmBedLocal to db here
dtPickerBed.date = dateAlarmBedLocal

Я должен также упомянуть, что «дата» от этого расширения:

extension Date {
    func adding(minutes: Int) -> Date {
        return Calendar.current.date(byAdding: .minute, value: minutes, to: self)!
    }
}

Спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 10 марта 2019

Вот что сработало: мне следовало добавить 1 день (что позволило бы Swift обрабатывать переход на летнее время).

let originalDate = dtPickerBed.date
var dateAlarmBedLocal = dtPickerBed.date.adding(day: 1 )
//save dateAlarmBedLocal to db here
dtPickerBed.date = dateAlarmBedLocal

extension Date {
    func adding(day: Int) -> Date {
        return Calendar.current.date(byAdding: .day, value: day, to: self)!
    }
}
0 голосов
/ 10 марта 2019

Правильно.Проблема заключалась в переходе на летнее время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...