Perché non riesco ad analizzare correttamente questa stringa di data con NSDateFormatter?
-
03-07-2019 - |
Domanda
Sto cercando di analizzare una stringa che è stata generata da un NSDateFormatter usando un altro NSDateFormatter con lo stesso formato.
Invece di cercare di dare un senso a quella frase precedente, ecco un po 'di codice:
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMM dd, YYYY HH:mm"];
NSDate *now = [[NSDate alloc] init];
NSString *dateString = [format stringFromDate:now];
NSDateFormatter *inFormat = [[NSDateFormatter alloc] init];
[inFormat setDateFormat:@"MMM dd, YYYY HH:mm"];
NSDate *parsed = [inFormat dateFromString:dateString];
NSLog(@"\n"
"now: |%@| \n"
"dateString: |%@| \n"
"parsed: |%@|", now, dateString, parsed);
Quando eseguo questo codice, mi aspetto che analizzato contenga la stessa data di ora ma invece ottengo il seguente output:
now: |2009-05-04 18:23:35 -0400| dateString: |May 04, 2009 18:23| parsed: |2008-12-21 18:23:00 -0500|
Qualcuno ha qualche idea del perché questo accada?
Soluzione
Il tuo problema è che " AAAA " non è un'opzione di formattazione della data ICU valida. Vuoi " yyyy " ;.
Il capitale "Y" è valido solo se utilizzato con la "settimana dell'anno" opzione (ovvero "Settimana" w "di" Y ").
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow