Essayez d’exécuter ceci sur iOS6 (n’avez pas encore testé iOS6):
NSDateFormatter *julianDayDateFormatter = nil;
julianDayDateFormatter = [[NSDateFormatter alloc] init];
[julianDayDateFormatter setDateFormat:@"g"];
for (NSString *timeZone in [NSTimeZone knownTimeZoneNames]) {
julianDayDateFormatter.timeZone = [NSTimeZone timeZoneWithName: timeZone];
NSDate *date = [julianDayDateFormatter dateFromString:[NSString stringWithFormat:@"%d", 2475213]];
if (date == nil)
NSLog(@"timeZone = %@", timeZone);
}
et vous obtenez le résultat suivant:
America/Bahia
America/Campo_Grande
America/Cuiaba
America/Sao_Paulo
Quelqu'un peut-il expliquer pourquoi ces quatre fuseaux horaires se comportent de la sorte avec NSDateFormatter défini sur le nombre de jours julien? Tous les autres fuseaux horaires obligent NSDateFormatter à renvoyer les dates NSD réelles.