Форматер даты, не возвращающий дату из строки в приложении, работает на игровой площадке - PullRequest
0 голосов
/ 21 октября 2019

Я знаю, что эти вопросы постоянно задают о форматерах даты, однако у меня действительно странная проблема

Мне нужно преобразовать простую строку в дату следующим образом

    let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy"
let dateOfBirthString = "10/20/2002"
let dob: Date? = dateFormatter.date(from: dateOfBirthString)

Это прекрасно работает на игровой площадке, но всегда возвращает ноль в приложении (с этими точными значениями (хотя и свойствами, а не жестко закодированными строками)

Любая помощь будет оценена, это сводит меня с ума

1 Ответ

0 голосов
/ 21 октября 2019
extension String {

func toDateTime() -> Date {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
    dateFormatter.timeZone = TimeZone(identifier: "UTC")
    dateFormatter.locale = Locale(identifier: "en_US_POSIX")
    guard let date = dateFormatter.date(from: self) else {
        preconditionFailure("Take a look to your format")
    }
    return date
}
}

попробуйте это расширение

let dateOfBirthString = "10/20/2002"
let dob: Date? = dateOfBirthString.toDateTime()

используйте это расширение, как это, и если вы получите какую-либо ошибку, не стесняйтесь комментировать ниже

...