Как настроить UIDatePicker так, чтобы всегда было время и дата UTC, не обращая внимания на летнее время? - PullRequest
0 голосов
/ 20 февраля 2019

UIDatePicker Я хочу настроить UIDatePicker, чтобы всегда иметь время и дату UTC, игнорировать любое местное время и летнее время.В моем приложении UIDatePicker после 31 марта 2019 года, если я установлю время 02:00 в текстовом поле, будет отображаться 03:00.

`func createDatePicker()  {
    datePicker = UIDatePicker()
    datePicker?.datePickerMode = .dateAndTime
    datePicker?.timeZone = NSTimeZone(name: "GMT")! as TimeZone

    datePicker?.timeZone = TimeZone(secondsFromGMT: 0)

    datePicker?.setValue(UIColor.white, forKey: "textColor")
    datePicker?.backgroundColor = UIColor.black.withAlphaComponent(0.6)

datePicker?.minimumDate = Date.calculateDate(day: 1, month: 1, year: 2019, hour: 0, minute: 0)
datePicker?.maximumDate = Date.calculateDate(day: 1, month: 1, year: 2020, hour: 0, minute: 0)




    // create toll bar
    let toolBar = UIToolbar()
    toolBar.sizeToFit()
    toolBar.barStyle = .blackOpaque

    //add done botton on this tool bar
    let doneBotton = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(doneDateClicked))
    toolBar.setItems([doneBotton], animated: true)
    doneBotton.style = .done
    dateTextField.inputAccessoryView = toolBar


    dateTextField.inputView = datePicker
}`

1 Ответ

0 голосов
/ 20 февраля 2019

Вы можете использовать следующую функцию, чтобы получить смещение, которое вам может потребоваться применить для корректировки летнего времени.

datePicker?.timeZone.daylightSavingTimeOffset(for: Date)

Возвращает смещение летнего времени для указанной даты.

Параметры

дата: Дата, используемая для расчета.Значением по умолчанию является текущая дата.

См. Документацию Apple.

...