Как преобразовать DateTime в строку - PullRequest
0 голосов
/ 19 февраля 2020

Я получаю от ответа сервера в DateTime, как это:

2019-04-24T16: 25: 02.557Z

, и я хотел бы только в строке:

2019-04-23

Как мне это сделать?

мой код:

let dateFormatter = DateFormatter()

dateFormatter.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ssZZZ"

let dateFormatterPrint = DateFormatter()
dateFormatterPrint.dateFormat = "MMM dd,yyyy"
let d = job.postedAt
if let date = dateFormatter.date(from: d) {
    let k = dateFormatterPrint.string(from: date)
    destinationVC.createdJob = k
} else {
    print("There was an error decoding the string")
}

Ответы [ 3 ]

0 голосов
/ 19 февраля 2020

Чтобы преобразовать 2019-04-24T16:25:02.557Z в Date объект, вы должны использовать:

let iso8601DateFormatter = ISO8601DateFormatter()
iso8601DateFormatter.formatOptions.insert(.withFractionalSeconds)
guard let date = iso8601DateFormatter.date(from: "2019-04-24T16:25:02.557Z") else { return }

И затем для вывода только строки даты в пользовательском интерфейсе, без времени, вы будете использовать что-то вроде:

let outputFormatter = DateFormatter()
outputFormatter.dateStyle = .medium
let result = outputFormatter.string(from: date)
0 голосов
/ 19 февраля 2020

Как насчет этого?

func stringFromDate(_ date: Date) -> String {
    let formatter = DateFormatter()
    formatter.dateFormat = "dd MMM yyyy HH:mm" //yyyy
    return formatter.string(from: date)
}
0 голосов
/ 19 февраля 2020

Try,

let dateFormatter = DateFormatter()

dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"

let dateFormatterPrint = DateFormatter()
dateFormatterPrint.dateFormat = "yyyy-MM-dd"
let d = "2019-04-24T16:25:02.557Z"
if let date = dateFormatter.date(from: d) {
    let k = dateFormatterPrint.string(from: date)

    print(k)
} else {
    print("There was an error decoding the string")
}

Ваш dateFormatter.dateFormat должен быть yyyy-MM-dd'T'HH:mm:ss.SSS'Z', а ваш dateFormatterPrint.dateFormat должен быть yyyy-MM-dd.

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