2017-08-24 2 views
0

Je veux le nom du pays (heure identifiant de zone) en fonction de fuseau horaire commeComment puis-je obtenir l'identifiant de fuseau horaire à partir d'un fuseau horaire

america/new_york 

Mon code actuel est

String time_zone = TimeZone.getDefault().getDisplayName(false, TimeZone.SHORT); 

Ce rendement GMT-05: 00

+1

Nom du pays! = ID de fuseau horaire. Les Etats-Unis ont je pense 10 fuseaux horaires (y compris tous les territoires d'outre-mer), mais un seul nom. C'est bien de vouloir utiliser l'identifiant du fuseau horaire; ne le traite pas comme si c'était le nom du pays. –

+0

Ok, j'ai compris – byteC0de

+0

Les noms de fuseaux horaires canoniques ne contiennent pas de pays. Le format est 'Area/Locality'. Dans la plupart des cas, "zone" est un * continent * ou un * océan *. Par exemple, 'America/Sao_Paulo' est en * Brésil *, qui est en Amérique du Sud, et Hawaii est' Pacific/Honolulu' –

Répondre

2

vous pouvez obtenir le nom du pays en utilisant ce

TimeZone.getDefault().getID() 
2

Le pays ne fait pas partie des données de fuseau horaire. Par exemple, il n'est pas encodé de manière fiable dans l'ID, comme dans Africa/Abidjan ou America/Cancun. La seule façon d'y parvenir est d'utiliser un tableau de correspondance explicite mappant l'ID de fuseau horaire au pays.

+0

J'utilise l'identifiant de fuseau horaire comme pays, – byteC0de

+0

Donc ... Votre question n'est pas "comment faire Je reçois le pays ", mais" comment puis-je obtenir l'identifiant du fuseau horaire d'un fuseau horaire "? C'est une grosse différence. –

+0

Ok, je suis mis à jour ma question, sry pour l'erreur – byteC0de