Javaプログラムを実行しようとしていますが、OSで定義されているタイムゾーンではなく、デフォルトのGMTタイムゾーンを使用しています。私のJDKバージョンは1.5で、OSはWindows Server Enterprise(2007)です。
Windowsには中央タイムゾーンが指定されていますが、次のプログラムを実行すると、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());
}
}
これが出力です
sun.util.calendar.ZoneInfo[id="GMT",
offset=0,
dstSavings=0,
useDaylight=false,
transitions=0,
lastRule=null]
Mon Mar 22 13:46:45 GMT 2010
アプリケーションからタイムゾーンを設定したくないことに注意してください。JVMで使用されるタイムゾーンは、OSで指定されたものである必要があります。(JDKのバージョン1.4およびMicrosoft Server 2003を搭載した他のサーバーでは、この問題は見つかりません)。
どんな考えでも大歓迎です。
DateTest
クラスを呼び出していますか?
-Duser.timezone
値に沿って渡される可能性のあるシェル/バッチスクリプトを介して起動することを除外したかっただけです