J'essaie d'exécuter un programme Java, mais il prend un fuseau horaire GMT par défaut au lieu d'un fuseau horaire défini par le système d'exploitation. Ma version JDK est 1.5 et le système d'exploitation est Windows Server Enterprise (2007)Comment définir correctement un fuseau horaire JVM
Windows a un fuseau horaire Central spécifié, mais lorsque j'exécute le programme suivant, il me donne une heure GMT.
import java.util.Calendar;
public class DateTest
{
public static void main(String[] args)
{
Calendar now = Calendar.getInstance();
System.out.println(now.getTimeZone());
System.out.println(now.getTime());
}
}
Voici la sortie
sun.util.calendar.ZoneInfo[id="GMT",
offset=0,
dstSavings=0,
useDaylight=false,
transitions=0,
lastRule=null]
Mon Mar 22 13:46:45 GMT 2010
S'il vous plaît noter que je ne veux pas définir le fuseau horaire de l'application. Je veux que le fuseau horaire utilisé par JVM soit celui spécifié dans le système d'exploitation. (Je ne trouve pas ce problème avec d'autres serveurs qui ont la version 1.4 de JDK et Microsoft Server 2003).
Toutes les pensées seraient très appréciées.
Hm, qui est étrange. Cela ressemble à un bogue JVM/OS ou à une mauvaise configuration bizarre. –
Comment invoquez-vous la classe 'DateTest'? –
@matt b: Je compile et j'appelle DateTest depuis l'invite de commande Windows. Mais ce n'est qu'une classe de test. Le problème original était avec un processus ETL pour IBM Cognos Server. –