2010-10-06 7 views
5

Si verifica un problema durante la conversione di una stringa data/ora in un NSDate.Formato data NSDateFormatter per data/ora con due punti nel fuso orario

La stringa data Ho bisogno di convertire è: 2002-12-24T00: 00: 00-07: 00

mia stringa di formato della data è attualmente AAAA-MM-dd'T'HH: mm: ssZZZ

Il problema sono i due punti nel fuso orario.

ZZZ restituisce una stringa del tipo: -0700 (senza i due punti) Come posso convertire una stringa con due punti nel fuso orario?

Grazie

risposta

3

io suggerisco di fare un po 'di manipolazione di stringhe, quindi è in una forma che dateWithString possono più facilmente accettare - come circa usando stringByReplacingOccurrencesOfString una o più volte per sbarazzarsi del colon?

dateWithString vuole:

YYYY-MM-DD HH:MM:SS ±HHMM 

avete:

yyyy-MM-dd'T'HH:mm:ssZZZ 

si avrà probabilmente bisogno di usare una combinazione di componentsSeparatedByString (per liberarsi di una parte della 'T', a meno che non si dispone di una piccola intervallo di valori possibili per T, e forse scrivere una piccola funzione per convertire ssZZZ in + HHMM

+1

La "T" gestirà la T così tutto ciò che dovevo eliminare era il colon tra il tempo parti di zona. La mia preoccupazione era che fosse il modo "facile" per risolvere il problema, ma non nel modo corretto. Comunque da tutti quelli di cui ho parlato, sembra che sia davvero l'unico modo per farlo. Poiché la mia stringa è sempre dello stesso formato, posso eseguire una stringaByReplacingOccurrencesOfString: withString: options: range: e impostare l'intervallo su 1 in lunghezza e 3 dalla fine della stringa – kdbdallas

+0

Ho una stringa esattamente come la tua (2002-12- 24T00: 00: 00-07: 00), ma il mio formattatore di data identico "yyyy-MM-dd'T'HH: mm: ssZZZ" non importa se ho ":" o non nella stringa di input. Qualcosa è cambiato? –

Problemi correlati