无法将字符串转换为Date对象

时间:2019-07-19 16:04:05

标签: swift

我有一个由UIDatePicker生成的日期字符串,在用户从选择器中选择一个日期之后,该日期被转换为字符串并显示在UITextField中,我有一个按钮,当单击后,我要检查开始日期是否比结束日期更近,在这种情况下将显示带有错误的警报。 问题是,我无法将日期字符串转换为日期对象。

这是我的代码:

internal func handleSubmit() {
    dateFormatter.dateFormat = MY_DATE_FORMAT
    guard let startString = self.mView.startDateTextField.text else { return }
    guard let endString = self.mView.endDateTextField.text else { return }

    guard let start = dateFormatter.date(from: startString) else { return } //<--- Returns here
    guard let end = dateFormatter.date(from: endString) else { return }

    if checkDate(startDate: start, endDate: end) {
        //TODO: This is ok, move the another screen.
    }else {
        //TODO: Show error.
    }
}

MY_DATE_FORMAT是一个简单的字符串"dd MM yyyy"

我不直接从UIDatePicker获取日期的原因是,我需要检查是否正在使用Start or End UITextField,并且我真的不想在valueDidChange方法中放入if语句。我有DatePicker,所以我考虑过将字符串转换回日期。

该字符串显示为“ 2019年7月19日”,我猜是“ 7月”是问题所在,但由于我是Swift的新手,所以我不能说清楚。

0 个答案:

没有答案