Как отформатировать дату в формате 09-ноя-2014 с помощью DateFormatter в iOS и Swift?

Я пытаюсь отформатировать дату в окне выбора даты. Я не могу найти формат для отображения даты в формате 09 ноября 2014 года. Он всегда отображается в формате 09 ноября 2014 года. Я провел большой поиск, но не могу понять, какой из них правильный для ввода. Может кто-нибудь мне помочь? Tx заранее.

@objc func datePickerValueChanged(sender:UIDatePicker) {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd-MM-yyyy"
    dateFormatter.dateStyle = DateFormatter.Style.medium
    dateFormatter.timeStyle = DateFormatter.Style.none
    dateOfBirthTextField.text = dateFormatter.string(from: sender.date)
}

2 ответа

Решение

Не устанавливайте стили. Просто установите формат.

Вы используете либо dateFormat или вы используете dateStyle а также timeStyle,

Обратите внимание, что лучше избегать использования dateFormat даты, которые вы хотите показать пользователю, поскольку ваш жестко заданный формат не будет стандартным для большинства пользователей.

Также имейте в виду, что MM показать номер месяца Если вы хотите сокращенное название месяца, используйте MMM,

Вы не должны использовать dateStyle & timeStyle здесь вам нужен конкретный формат даты, ваш код должен выглядеть так:

@objc func datePickerValueChanged(sender:UIDatePicker) {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd-MM-yyyy"
    dateOfBirthTextField.text = dateFormatter.string(from: sender.date)
}

Надеюсь, поможет.

Другие вопросы по тегам