NSDateFormatter gibt ein Datum um einen Tag zurück

8

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?

    
Mansi 06.10.2010, 21:41
quelle

2 Antworten

10

Hat wahrscheinlich etwas mit Zeitzonen zu tun. Sie müssen wahrscheinlich einen geeigneten Wert für die timeZone-Eigenschaft Ihres NSDateFormatter-Objekts festlegen.

    
William Jockusch 06.10.2010, 21:57
quelle
2

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;

    
Juan Fran Jimenez 02.11.2010 10:50
quelle