Преобразование String в NSDate с помощью Swift 2

Я пытаюсь преобразовать строку в NSDate вот мой код

     let strDate = "2015-11-01T00:00:00Z" // "2015-10-06T15:42:34Z"
     let dateFormatter = NSDateFormatter()
     dateFormatter.dateFormat = "yyyy-MM-ddTHH:mm:ssZ"
    print ( dateFormatter.dateFromString( strDate ) )

В результате я получаю nil

Ответы

Ответ 1

"T" в строке формата должно быть одинарным, поэтому оно не будет считаться символом:

Swift 3.0

let strDate = "2015-11-01T00:00:00Z"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let date = dateFormatter.date(from:strDate)
print("date: \(date!)")

Вывод:

дата: 2015-11-01 00:00:00 +0000

Swift 2.x

let strDate = "2015-11-01T00:00:00Z"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let date = dateFormatter.dateFromString(strDate)
print("date: \(date!)")

Вывод:

дата: 2015-11-01 00:00:00 +0000

Смотрите: Поле даты Поле SymbolTable.

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