Frage

I NSDateFormatter verwenden, ist das Problem mit der Konsistenz. Wenn ich die kCFDateFormatterMediumStyle verwenden gibt es das Format als "26. November 2009" in Simulator aber auf dem Gerät gibt es "26-Nov-2009".

Jetzt habe ich die Frage: Ist das nicht NSFormatter vertrauenswürdige Mittel in naher Zukunft oder Updates von Apple kann den Stil wieder ändern?

War es hilfreich?

Lösung

NSDateFormatter formatiert das Datum auf die Vorlieben des Benutzers auf der Grundlage der internationalen Einstellungen auf dem Gerät. Als solche kann man nie diese Zeichenfolge erwartet wegen der Menge von verschiedenen Möglichkeiten konsequent zu sein, die Daten auf der ganzen Welt angezeigt werden.

Ich habe den besten Weg gefunden, ein Datum als String formatiert werden (zu webservers geben verwenden usw.) ist NSDateComponents zu verwenden und diese in Strings zu umwandeln.

Andere Tipps

Während die andere Antwort oben erwähnten technisch korrekt ist, ist es nicht geben Ihnen die Lösung, die Sie suchen. Während die NSDateFormatter standardmäßig Benutzer locales mit (und ist als solche nicht, dass Sie nützliche Ergebnisse gehen geben) können Sie einen bestimmten locale verlangen konsistente Ergebnisse zu erhalten:

NSDateFormatter *frm = [[NSDateFormatter alloc] init];
[frm setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"];

NSLocale *en_US = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[frm setLocale:en_US];
[en_US release];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top