Lorsque j'appelle NSTimeZone’s méthode d'abréviation il renvoie GMT-07:00
. Puis, quand j'utilise cette valeur pour rechercher le nom de fuseau horaire ou (time zone identifier), elle retourne nil
.Comment convertir un abréviation de décalage de fuseau horaire en identifiant officiel de fuseau horaire?
J'ai besoin de récupérer le time zone identifier officiel, par exemple, . Par conséquent, comment puis-je convertir un abréviation de décalage de fuseau horaire (par exemple, GMT-07:00
) en l'identificateur de fuseau horaire officiel?
Voici mon code:
NSTimeZone* localTimeZone = [NSTimeZone localTimeZone];
NSString* localAbbreviation = [localTimeZone abbreviation];
NSDictionary* abbreviationDictionary = [NSTimeZone abbreviationDictionary];
NSString* timeZoneID =
[abbreviationDictionary objectForKey:localAbbreviation]; //should return 'America/Los_Angeles' if the abbreviation is ‘PDT’
Ce n'est pas possible à mon avis. Il existe beaucoup plus de 24 fuseaux horaires. Un mappage exact du décalage horaire par rapport à un fuseau horaire réel est impossible. –
Soit dit en passant, appelant '[[NSTimeZone LocalTimeZone] abréviation]' dans mes locale/emplacement @ elle retourne ' "CEST"' et non un décalage numérique. –
Merci Ole, je reçois GMT-07: 00, qui est une abréviation de fuseau horaire local invalide. – johnnieb