Проблема преобразования строки в объект Date - PullRequest
0 голосов
/ 01 июля 2019

У меня есть представление DatePicker. Когда пользователь щелкает UITextField, он показывает DatePicker, который пользователь, конечно, может выбрать для даты. Проблема в том, что когда я пытаюсь преобразовать строку в объект даты, я ничего не получаю, поэтому я не могу сравнить две даты, например.

    func checkDate(){

    let dateFormatter = DateFormatter()
    dateFormatter.locale = Locale(identifier: Locale.current.identifier)
    dateFormatter.timeZone = .current
    dateFormatter.dateFormat = "dd/MM/yy"

    guard let startDate = mView.startDateTextField.text else { return }
    print("DATE: \(startDate)")

    guard let startDateFromString = dateFormatter.date(from: startDate) else { return } //I think it returns here.
    //Won't get here.
    print("DATE: \(startDate)")

    guard let endDate = mView.endDateTextField.text else { return }
    guard let endDateFromString = dateFormatter.date(from: endDate) else { return }

    if startDateFromString.compare(endDateFromString) == ComparisonResult.orderedDescending{
        print("Start date cannot be greater than end date.")
    }
}

Я попытался отладить, и точка останова доходит до строки startDateFromString, но из нее "выпрыгивает" наружу, так что я думаю, что она не получит Date из строки и вернет.

Я просто не могу понять, почему.

РЕДАКТИРОВАТЬ: Здесь я устанавливаю TextField Text в качестве даты, выбранной из DatePicker.

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

}

1 Ответ

0 голосов
/ 02 июля 2019

Возможно, вы используете неправильный формат даты. Проверьте формат даты от здесь

Например, если ваша дата-строка «1 марта 2019 года», вы должны использовать ее как dateFormat «МММ д, гггг»

dateFormatter.dateFormat = "MMM d, yyyy"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...