Je ne sais pas quel est le problème, mais au lieu d'obtenir un nom de mois "juillet", je reçois "07".
dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setLocale:[NSLocale systemLocale]];
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];
[dateFormat setDateFormat:@"MMMM dd, h:mm a"];
J'ai essayé M, MM, MMM, MMMM, et tous me donnent un nombre, au lieu du nom du mois, mais avec différentes quantités de 0 en tête.
Se révèle être un problème avec la deuxième ligne, setLocale
. Je suppose que le système n'utilisera pas par défaut les noms de mois anglais lorsque le locale
a été défini manuellement? Je vis dans un locale
anglophone, mais peut-être que cela n'a pas d'importance.
Dans tous les cas, le fait de ne pas définir les paramètres régionaux résout le problème du nom du mois.
dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];
[dateFormat setDateFormat:@"MMMM dd, h:mm a"];
Le problème vient des paramètres régionaux, pas du format. Regarde ça:
http://waracle.net/mobile/iphone-nsdateformatter-date-formatting-table/
Fondamentalement, "MMMM" vous donnera le nom complet du mois.
-systemLocale
n'est pas ce que vous voulez ici. Il renvoie un paramètre régional de secours si aucun autre paramètre local ne convient. Utilisation -currentLocale
pour obtenir les paramètres régionaux actuels de l'utilisateur.
Aussi:
Vous devez utiliser NSDateFormatter
's +dateFormatFromTemplate:options:locale:
méthode pour obtenir le format de date correct. Dans certaines langues, le jour précède le mois, etc. et vice versa.