2015-10-10 29 views
15

Próbuję przekonwertować ciąg do NSDate Oto mój kodKonwersja String do NSDate z Swift 2

 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)) 

Wciąż dostaję nil wskutek

Odpowiedz

31

„T” w ciągu formatu musi być pojedyncze cytowany więc nie będzie rozważyć symbol:

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!)") 

wyjściowa:

data: 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!)") 

wyjściowa:

data: 2015-11-01 00:00:00 +0000

Patrz: Date Field SymbolTable.

Obejmuje to trzeba dołączać litery ASCII w pojedynczych cudzysłowach, jeśli są przeznaczone do reprezentowania tekstu dosłowne.