Java 日付型のタイムゾーンがGMT(-9時間)になってしまう不具合の解決方法 - Date, Calendar

Javaで日付型のタイムゾーンがGMT(-9時間)になってしまう不具合の解決方法です。

Windows Vista 以降の OS で、以下の JDK を使用した場合、タイムゾーンが GMT(-9時間) となってしまい、Date クラスや Calendar クラスの日付が全て GMT 時間で扱われてしまいます。

ここでは Javaで日付型のタイムゾーンがGMT(-9時間)になってしまう不具合の解決方法 を紹介します。

Windows 以外の OS は、問題ありません。


対象JDK

  • ~ JDK 1.4.2_13
  • ~ JDK 1.5.0_09

JDK 1.4、1.5 を利用している場合は注意してください。

現象を確認してみる

とりあえずテストして現象を確認しましょう。

2014/4/7 15:30 に実行しました。

System.out.println(“java.util.Date:” + new Date());

結果は・・・ -9時間 になっているー!

java.util.Date:Mon Apr 07 06:30:31 GMT 2014

解決方法

環境変数「JAVA_OPTS」や「CATALINA_OPTS」に「-Duser.timezone=Asia/Tokyo」を設定すれば解決できます。

環境変数 JAVA_OPT Timezone

Eclipse を利用している場合は、「ウィンドウ」→「設定」 のツリーで「Tomcat」→「JVM 設定」を選択し、JVM パラメータに「」を設定すれば解決できます。

Eclipse設定 Timezone

まとめ

Javaで日付型のタイムゾーンがGMT(-9時間)になってしまう不具合の解決方法を紹介しました。

ふぅー、よかったよかった。いきなり時間が変わっていたりすると焦りますよねぇ・・^^;

でもこの設定を利用すれば大丈夫です。開発するアプリケーションの方も、できるだけ最新のバージョンにアップデートしていけるように対応しましょうね。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。