2011-07-27 4 views
2

Je n'arrive pas à comprendre pourquoi ma sortie de formatage de date et heure pour certains fuseaux horaires change dans mes environnements.Changement de modèle de fuseau horaire Joda dans les environnements

J'ai une guerre, je lance cette guerre comme une guerre autonome sur la jetée (en utilisant Java 1.5), ce code

System.out.println (nouveau DateTime(). WithZone (DateTimeZone.forID ("Asie/Kolkata")). ToString ("zzz"));

produit une sortie: IST

Quand je mets cette guerre dans une oreille, et exécuter sur WebSphere 6.1,

Sortie: '+5:30'

Je désirerais que "IST" soit montré dans les deux endroits. Je soupçonne que cela a quelque chose à voir avec le chargement des classes, et comment Joda trouve les définitions des fuseaux horaires. Si seulement on pouvait me montrer des documents, je serais très reconnaissant.

J'utilise Joda 1.6.2

Répondre

2

la documentation sur ce qui peut être trouvé à http://joda-time.sourceforge.net/tz_update.html - vous devez vous assurer que les pots existants dans votre serveur d'applications ne remplacent pas ces fichiers de fuseau horaire.

En 2011, vous pouvez télécharger ftp://elsie.nci.nih.gov/pub/tzdata2011h.tar.gz et rechercher les termes 'Kolkata' et 'IST' dans le répertoire décompressé. En 2017, vous trouverez les données via l'IANA (https://iana.org/time-zones et ftp://ftp.iana.org/tz - par exemple ftp://ftp.iana.org/tz/releases/tzdata2017a.tar.gz).

Recherchez ensuite les fichiers jar existants dans votre serveur d'applications et identifiez les mêmes noms de fichiers. Personnellement, j'aime utiliser mon propre petit petit script bash « grepJars.sh », qui trouve un fichier par nom de fichier dans tous les pots/guerres/oreilles dans le répertoire courant (pas les sous-répertoires!):

#!/bin/bash 

searchterm=$1 

handleFile() 
{ 
    f=$1 
    found=`jar tf "$f"|grep "$searchterm"` 
    if [ "$found" ]; then 
     echo "-----------------" 
     echo "$f" 
     echo "-----------------" 
     echo "$found" 
    fi 
} 

ls *.?ar|while read f; do handleFile $f; done 

Là encore, il y a probablement de meilleurs scripts/outils de recherche là-bas ...

Questions connexes