是否可以将所有日期都设置为同一小时?

问题描述 投票:0回答:1

我有一个从日期选择器创建的日期数组。保存它们时,还会添加小时和分钟。当我比较日期相等时,由于夏令时,其中一些会减少一个小时。

在日期选择器之后,是否可以将每个日期设置为同一小时,或者我是否必须经过检查夏时制并加减一小时的过程?还是应该通过函数运行数组以使它们全部相等?

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)
swift date datepicker nsdateformatter nsdatecomponents
1个回答
0
投票

找到了修补程序。

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
© www.soinside.com 2019 - 2024. All rights reserved.