2012-03-07 5 views
0

Je suis en train d'obtenir le fuseau horaire du calendrier natif en utilisant le code suivant, mais je reçois le fuseau horaire a Asie/Calcutta au lieu de simplement « IST »comment obtenir fuseau horaire d'un calendrier

Calendar calendarLocal = Calendar.getInstance(); 
       // fetches time zone 
       TimeZone timeZone = calendarLocal.getTimeZone(); 
       System.out.println("Time Zone getAvailableIDs() --->"+timeZone.getAvailableIDs()); 
       String[] x=timeZone.getAvailableIDs(); 
       for(int i=0;i<x.length;i++){ 
        System.out.println("Time Zone IDs-->"+x[i]); 
       } 
        System.out.println("Time Zone ID--->"+timeZone.getID()); 
       System.out.println(" Calender Default-------->>>"+timeZone.getDefault()); 
       System.out.println("Time Zone --->"+timeZone.getTimeZone(timeZone.getID())); 

Ici fuseauHoraire Asie/Calcutta j'en ai besoin pour imprimer IST

Répondre

0

BlackBerry Java ne vous donne pas les codes de fuseau horaire, du moins pas de manière fiable (il est seulement nécessaire de connaître le code "GMT"). Vous pouvez see my answer here pour savoir comment coder un mappage entre des chaînes telles que "Asia/Calcutta" et "IST". (Ma méthode mapTimeZoneCodes() dans cet exemple)

Je donne une méthode de modèle pour la mise en place de la cartographie, et un lien vers this article on Desktop Java, qui semble avoir une liste assez complète des temps codes de zone, et comment faire correspondre les codes à la longues chaînes de fuseau horaire Java.

Il sera le travail ennuyeux pour copier les chaînes dans mon modèle, mais une fois que vous l'avez, vous serez en mesure de rechercher facilement le code court basé sur le nom long:

String longName = timeZone.toString(); 
String shortCode = (String)_timeZones.get(longName); 
Questions connexes