Ich versuche, ein Java-Programm auszuführen, aber es nimmt eine Standard-GMT-Zeitzone statt einer OS-definierten Zeitzone. Meine JDK-Version ist 1.5 und das Betriebssystem ist Windows Server Enterprise (2007)Wie man eine JVM TimeZone richtig einstellt
Windows hat eine zentrale Zeitzone angegeben, aber wenn ich das folgende Programm ausführen, gibt es mir eine GMT-Zeit.
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());
}
}
Hier ist die Ausgabe
sun.util.calendar.ZoneInfo[id="GMT",
offset=0,
dstSavings=0,
useDaylight=false,
transitions=0,
lastRule=null]
Mon Mar 22 13:46:45 GMT 2010
Bitte beachten Sie, dass ich will nicht die Zeitzone von der Anwendung eingestellt werden. Ich möchte, dass die von JVM verwendete Zeitzone die im Betriebssystem angegebene ist. (Dieses Problem tritt bei anderen Servern mit der Version 1.4 von JDK und Microsoft Server 2003 nicht auf.)
Alle Gedanken würden sehr geschätzt werden.
Hm, das ist seltsam. Sieht aus wie ein JVM/OS-Bug oder eine seltsame Fehlkonfiguration. –
Wie rufen Sie die Klasse "DateTest" auf? –
@matt b: Ich kompiliere und rufe DateTest von Windows Eingabeaufforderung. Aber das ist nur eine Testklasse. Das ursprüngliche Problem war mit einem ETL-Prozess für IBM Cognos-Server. –