Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift UIDatePicker,选择日期显示提前一天_Swift - Fatal编程技术网

Swift UIDatePicker,选择日期显示提前一天

Swift UIDatePicker,选择日期显示提前一天,swift,Swift,我有一个UIDatePicker,从picker中获取日期会显示与我选择的日期不同的日期(提前一天) For example, choosing May 2, 2019, shows 2019-05-01 这是我获取变量日期的地方: @objc func datePickerValueChanged(sender: UIDatePicker){ let dateFormatter = DateFormatter() dateFormatter.dateStyle = .

我有一个UIDatePicker,从picker中获取日期会显示与我选择的日期不同的日期(提前一天)

For example, choosing May 2, 2019, shows 2019-05-01
这是我获取变量日期的地方:

    @objc func datePickerValueChanged(sender: UIDatePicker){
    let dateFormatter = DateFormatter()
    dateFormatter.dateStyle = .medium
    dateTextField.text = dateFormatter.string(from: sender.date)

    //Tag 9 is the startDateTextField, Tag 8 is the EndDateTextField
    //We need this to know which variable should get the date choosen.
    if dateTextField.tag == 9 {
        startDateChoosen = sender.date
    }else if dateTextField.tag == 8 {
        endDateChoosen = sender.date
    }
}
这是我在屏幕上看到的:

问题可能在于您使用的iPad/iPhone上设置的时区。确保设置中设置的时区与您当前所在的时区一致。

您的图片显示的是5月2日。顺便说一句,与您的问题无关,但每次选择器更改时,您的代码都会创建一个新的DateFormatter。您应该将DateFormatter声明为控制器的属性,或者将其作为Formatter的静态属性。您在哪里看到
2019-05-01
?@rmaddy他可能正在打印it@rmaddy打印存储日期的变量。@LeoDabus谢谢,应该是5月2日,并显示给用户,问题在于我存储日期的变量,打印这个变量会提前一天。是的,日期格式化程序不应该在那里,我会修复它,谢谢!