2015-07-27 11 views
12

Ho questo Optional(2015-07-27 19:29:50 +0000) come stringa? e voglio convertirlo in una data (NSDate) ma non riesco a capirlo Ho cercato molto per le soluzioni ma sono abbastanza nuovo per la codifica, quindi se qualcuno potesse aiutare lo apprezzerei.Converti Stringa facoltativa fino ad oggi

Questo è quello che sto usando per convertire la stringa in una data al momento.

nota: dateString è Optional(2015-07-27 19:29:50 +0000)

dateFormatter = NSDateFormatter() 
println(dateFormatter) 
dateFormatter.dateFormat = "yyyy-MM-dd" 
let s = dateFormatter.dateFromString(dateString) 

ottengo sempre un valore nullo

+0

La domanda dovrebbe essere più generico, come "Converti stringa in dati", non è necessario aggiungere tag nella domanda, poiché vengono visualizzati più in basso. Infine, dovresti anche farlo in quale contesto e cosa hai provato fino ad ora. – Emz

+0

Le domande di aiuto per il debug ("perché non funziona questo codice?") Devono includere il comportamento desiderato, un problema specifico o un errore e il codice più breve necessario per riprodurlo nella domanda stessa. –

+0

possibile duplicato di [SWIFT: Come convertire la data della stringa in NSDate] (http://stackoverflow.com/questions/24777496/swift-how-to-convert-string-date-to-nsdate) –

risposta

42

Se si sta ottenendo zero da NSDateFormatter, è probabile che sia stato specificato un formato di data errato. Prova questo:

let strTime = "2015-07-27 19:29:50 +0000" 
let formatter = NSDateFormatter() 
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z" 
formatter.dateFromString(strTime) // Returns "Jul 27, 2015, 12:29 PM" PST 
+0

Potrebbe essere utile specificare se è per la 'Data' della classe Swift per usare' DateFormatter' invece. –

0

Si vuole utilizzare un NSDateFormatter e chiamare dateFromString: su di esso per ottenere la data dalla stringa. Vedi Apple's NSDateFormatter documentation per una grande spiegazione di fare ciò che vuoi.

0

a Swift 3.0:

let strTime = "2015-07-27 19:29:50 +0000" 
let formatter = NSDateFormatter() 
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z" 
formatter.date(from: strTime) 
0

dateString è già la data e la necessità di convertire in stringa. Di seguito il codice sta lavorando bene

dateFormatter = NSDateFormatter() println (dateFormatter) dateFormatter.dateFormat = "yyyy-MM-dd" let s = dateFormatter.string (da: dateString)

Problemi correlati