Преобразование строкового времени в дату Swift 5 - PullRequest
0 голосов
/ 08 июля 2020

Я последовал примеру здесь , однако год возвращается всегда неверно, например, 2000-01-01. Есть ли способ просто добавить к Date () время, которое я прохожу? Итак, у меня есть время в виде строки, это весело c:

// Converts String time (01:07 PM) to Date (2000-01-01 18:07:00 +0000)
    func convertStringTimeToDate(item: String) -> Date {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "hh:mm a"
        dateFormatter.amSymbol = "AM"
        dateFormatter.pmSymbol = "PM"

        let date = dateFormatter.date(from: item)
        
        return date!
    }

Например, time: 01:07 PM ошибочно даст мне 1 Jan 2000, 01:07 PM. Год должен быть правильным.

1 Ответ

0 голосов
/ 08 июля 2020

Это решение, спасибо @nghiahoang за помощь:

// Converts String time (01:07 PM) to Date (2000-01-01 18:07:00 +0000)
    func convertStringTimeToDate(item: String) -> Date {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "hh:mm a"
        dateFormatter.amSymbol = "AM"
        dateFormatter.pmSymbol = "PM"
        dateFormatter.defaultDate = Date()
        
        let date = dateFormatter.date(from: item)
        
        return date!
    }
...