NSDateFormatter donne différentes valeurs sur le périphérique et le simulateur? Quel est le travail autour?

StackOverflow https://stackoverflow.com/questions/1803169

Question

J'utilise NSDateFormatter, le problème réside dans sa cohérence. Si j’utilise kCFDateFormatterMediumStyle, il donne le format suivant: "26 nov. 2009" dans le simulateur mais sur l’appareil, il donne "26 nov. 2009".

Maintenant, j'ai la question suivante: Est-ce que NSFormatter peut faire confiance dans un proche avenir ou que des mises à jour d'Apple peuvent-elles changer le style à nouveau?

Était-ce utile?

La solution

NSDateFormatter formate la date selon les préférences de l'utilisateur, en fonction des paramètres internationaux du périphérique. En tant que tel, vous ne pouvez jamais vous attendre à ce que cette chaîne soit cohérente en raison du nombre de façons différentes dont les dates sont affichées à travers le monde.

J'ai trouvé le meilleur moyen de formater une date en tant que chaîne (à utiliser pour donner aux serveurs Web, etc.): utiliser NSDateComponents et les convertir en chaînes.

Autres conseils

Bien que l’autre réponse mentionnée ci-dessus soit techniquement correcte, elle ne vous donne pas la solution que vous recherchez. Bien que NSDateFormatter utilise par défaut les paramètres régionaux de l'utilisateur (et ne vous donnera pas de résultats utiles en tant que tels), vous pouvez demander un paramètre régional spécifique pour obtenir des résultats cohérents:

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];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top