Formatierung Monat und Jahr mit NSDateFormatter zurück ungültiges Datum
Habe ich das Gebietsschema und die Zeitzone, aber wenn ich das Datum zu formatieren, ich bekomme immer ungültiges Datum. Der Monat ist stets Dezember und das Jahr ist eines weniger, dass das angegebene Jahr. In meinem Fall ich brauche die Tag-Komponente.
Habe ich überprüft ähnlichen post, aber es hat nicht das problem gelöst.
Jede Hilfe ist willkommen. Danke.
Hier ist der code:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease];
dateFormatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[dateFormatter setDateFormat:@"MMM YYYY"];
NSDate *formattedDate = [dateFormatter dateFromString:@"Sep 2013"];
NSLog(@"Date: %@", [dateFormatter stringFromDate:formattedDate]);
[dateFormatter release]; dateFormatter = nil;
AUSGABE: Datum: Dez 2012
Du musst angemeldet sein, um einen Kommentar abzugeben.
Format"YYYY" steht für die "Woche des Jahres" basierte Kalender. Verwenden Sie "yyyy" format specifier statt:
Ich wollte nur etwas hinzufügen, um die große Antwort von Wladimir. Wenn Sie dies tun, bevor Sie Ihr Gebietsschema, es scheint, dass die Formatierung des Datums verrückt. Was ich tun musste, war, das Gebietsschema, bevor Sie das neue format, und verwenden Sie dann die
setDateFormat
um das format zu ändern, basierend auf dem Gebietsschema, das verwendet wird.So etwas wie dies tun würde:[formatter setDateStyle:NSDateFormatterShortStyle];
und[formatter setTimeStyle:NSDateFormatterNoStyle];
sind redundant im code. Wenn SiesetDateFormat
die vorherigen Aufruf zum festlegen Datumsformat und das Zeitformat wird ignoriert.