Форматирование даты возвращается при использовании DateFormatter (). Date (from: String) - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть следующий код:

//converting date into desired format
    let formatterGet = DateFormatter()
    formatterGet.dateFormat = "yyyy-MM-dd HH:mm:ss zzzz" //"2014-09-21 21:00:00  0000"
    let date = formatterGet.date(from: birthday) 
    print(date)

    // "decoding" the new format to be shown in the UI
    let formatterShow = DateFormatter()
    formatterShow.dateFormat = "MMM dd, yyyy"
    birthdayTextField.text = formatterShow.string(from: date ?? Date())

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

1 Ответ

1 голос
/ 22 сентября 2019

Проблема в вашем DateFormatter преобразовании.У вас есть два варианта:

1: удаление zzzz из форматера и из даты:

    let birthday = "2014-09-21 21:00:00"
    let formatterGet = DateFormatter()
    formatterGet.dateFormat = "yyyy-MM-dd HH:mm:ss"
    let date = formatterGet.date(from: birthday)

    print(date)

Вывод:

    Optional(2014-09-22 00:00:00 +0000)

2: добавление+ знак даты:

   let birthday = "2014-09-21 21:00:00 +0000"
   let formatterGet = DateFormatter()
   formatterGet.dateFormat = "yyyy-MM-dd HH:mm:ss zzzz"
   let date = formatterGet.date(from: birthday)

   print(date)

Выход:

   Optional(2014-09-22 00:00:00 +0000)
...