我有一个由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的新手,所以我不能说清楚。