Swift date из строки всегда возвращает ноль - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть дата, строка которой выглядит следующим образом:

Apr 25 2018 12:00AM

То, что я пытаюсь сделать, это преобразовать этот формат даты в yyyy-MM-dd, а затем преобразовать его обратно в строку. Я попробовал следующее:

let formatter = DateFormatter()
            formatter.dateFormat = "M dd yyyy h:mm A"
            let SLAIssuedFinalGradingDate = formatter.date(from: tableDic["SLAIssuedFinalGradingDate"] as! String)
            formatter.dateFormat = "yyyy-MM-dd"
            let SLAIssuedFinalGradingDateString = formatter.string(from: SLAIssuedFinalGradingDate!)

Но SLAIssuedFinalGradingDate всегда возвращает ноль, что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Ваш dateFormat для Apr 25 2018 12:00AM не верен.Вы используете M dd yyyy h:mm A, но формат будет MMM dd yyyy hh:mma.
. Используйте эту ссылку для проверки формата даты .

Код должен быть:

let formatter = DateFormatter()
formatter.locale =  Locale(identifier: "en_US_POSIX")
formatter.dateFormat = "MMM dd yyyy hh:mma"
let SLAIssuedFinalGradingDate = formatter.date(from: tableDic["SLAIssuedFinalGradingDate"] as! String)
formatter.dateFormat = "yyyy-MM-dd"
let SLAIssuedFinalGradingDateString = formatter.string(from: SLAIssuedFinalGradingDate!)
0 голосов
/ 25 апреля 2018

Ваша строка dateFormat неверна. DateFormatter всегда будет возвращать nil, если строка dateFormat не соответствует предоставленной строке.

"MMM dd yyyy hh:mma"

Это то, что вы ищете. Предлагаю вам ознакомиться с датой форматирования шпаргалка и ознакомиться с символами.

...