NSDateFormatter dateFromString возвращает ноль для "2015-11-20 13:42:00.000000"

Я знаю, что есть много подобных вопросов, но я не могу понять мою проблему.

Я хочу преобразовать String лайк "2015-11-20 13:42:00.000000" к NSDate.

Мой код, как показано ниже.

let date:String
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ssZ"
if let value = row["date"]?.asString() {
    date = value
    let formattedDate = dateFormatter.dateFromString(date) // formattedDate is nil
}

3 ответа

Вы должны обновить свой dateFormat со следующим

dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSSSSS"

В верхнем регистре S представляет долю секунды.

Более подробная информация о таблице формата DateTime доступна здесь.

Пожалуйста, защитите свой код, сохраняя пони!

let date = "2015-11-20 13:42:00.000000"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSSSSS"
if let fornmattedDate = dateFormatter.dateFromString(date) as NSDate {
print ("The formated date is \(fornmattedDate)")
} else {
     print ("\(date) is not a valid date")
} 

Попробуйте так:

    let date = "2015-11-20 13:42:00.000000"
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSSSSS"
    let fornmattedDate = dateFormatter.dateFromString(date) as NSDate!
    print ("The formated date is \(fornmattedDate)")

Вывод:- форматированная дата 2015-11-20 21:42:00 +0000

Другие вопросы по тегам