Есть ли способ установить массив дат все в тот же час? - PullRequest
0 голосов
/ 12 марта 2020

У меня есть массив дат, созданный из средства выбора даты. Когда они сохранены, он также добавляет часы и минуты. Когда я сравниваю даты, чтобы быть равными, некоторые из них выходной на час из-за перехода на летнее время.

Есть ли способ, после выбора даты, установить каждую дату в один и тот же час, или я должен go через процесс проверки перехода на летнее время и сложения или вычитания за час? Или я должен запустить массив через функцию, чтобы сделать их все равными?

func createDatePicker() {

    // format Display of date
    datePicker.datePickerMode = .date

    // assign datepicker to textfield
    dateTextField.inputView = datePicker

    // create toolbar
    let toolBar = UIToolbar()
    toolBar.sizeToFit()

    // add item Button
    let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector (doneClicked))
    toolBar.setItems([doneButton], animated: true)


    dateTextField.inputAccessoryView = toolBar

}

@objc func doneClicked() {

    //format the date display in text field
    let dateFormatter = DateFormatter()
    dateFormatter.dateStyle = .short
    dateFormatter.dateFormat = "MM-dd-yyyy"
    dateTextField.text = dateFormatter.string(from: datePicker.date)

    self.view.endEditing(true)

1 Ответ

0 голосов
/ 13 марта 2020

нашел исправление.

if let date = dateTextField.text {
     let dateFormatter = DateFormatter()
     dateFormatter.dateFormat = "MM-dd-yyyy"
     newDate = dateFormatter.date(from: date)!
     let tz = TimeZone.current
     if tz.isDaylightSavingTime(for: newDate) {
     print("date Changed")
     newDate += 3600
...