In meiner iPhone App versuche ich, das EEE MMM dd aus einer Datums-Zeichenfolge zu erhalten, die von einem Web-Service empfangen wird.
Für alle Daten, für die Zeit & lt; 07:00, der NSDateFormatter gibt ein Datum um 1 Tag zurück. Beispiel: Zu formatierendes Datum: 2010-11-17T05: 00: 00, formatiertes Datum Ergebnis: Di 16. Nov
Hier ist das Code-Snippet:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat: @"EEE MMM dd"];
NSDate * dateToFormat = [NSDate dateWithNaturalLanguageString: Gebietsschema dateStringToFormat: [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]];
NSString * formatiertDateString = [dateFormat stringFromDate: dateToFormat]; [DatumFormat-Veröffentlichung];
Was könnte das Problem sein?
Hat wahrscheinlich etwas mit Zeitzonen zu tun. Sie müssen wahrscheinlich einen geeigneten Wert für die timeZone-Eigenschaft Ihres NSDateFormatter-Objekts festlegen.
Ich hatte das gleiche Problem aber erst nach dem Update auf iOS4. Mein Formatierer ist so:
[aDateFormatter setDateFormat: @ "JJJJ-MM-TT HH: mm: ss z "];
und meine Daten so:
2009-10-27 7:30:12 -0700
Ich habe es geschafft, das Problem zu beheben, indem ich den Datumsauswahlmodus vor ändere, indem ich das Maximum / Min / ausgewählte Datum auf die Datumsauswahl anwendete. In meinem Fall das:
aDatePicker.datePickerMode = UIDatePickerModeDate;
Tags und Links objective-c iphone ipad nsdateformatter