アプリ版:「スタンプのみでお礼する」機能のリリースについて

Javaによるプログラミングについて、初歩的な部分で質問があり投稿させていただきました。
使用しているOSはWindowsXP Homeです。
現在PCにインストールされているJDKのバージョンはjdk1.6.0_03、JREのバージョンはjre1.6.0_03です。

Javaプログラムのコードはメモ帳で記述し、コマンドプロンプトからjavacでコンパイルを行っています。

さて、

System.out.println(new java.util.Date());

のようなコードを書いてコンパイルし実行した場合に、表示される時間がJSTではなくGMTになってしまい困っています。

java.util.Calenderを用いれば解決することは分かっているのですが、どうにも気になってしまったので、何か解決する術があればと思い、質問させていただきました。

ちなみに、システムのタイムゾーンは東京になっています。

A 回答 (1件)

俺はJavaをがんがんやっているという人間ではないし,


>java.util.Calenderを用いれば解決する
という意味を取り違えているかもしれないが,

例えば
http://bugs.sun.com/bugdatabase/view_bug.do?bug_ …

http://bugs.sun.com/bugdatabase/view_bug.do?bug_ …
では
Calendar.getInstance
とか
java.util.SimpleTimeZone
が正しいタイムゾーンを返さないバグとして挙がっている。

上の例ではWindows 2003 Resouce Kitのtimezone.exe等を用いて,

DST(夏時間)パッチを当てた場合,Javaが,システムのロケールの判断に使う
レジストリTIMEZONEINFORMATIONがそれに応じて変更されないためで,
コントロールパネルの「日付と時刻」でタイムゾーンのタブを選択し,OKを押すことで回避できるとしている。Java側では修正しないらしい。

#XPとVistaに以前提供されていたパッチと違うのだろうか?
#ちなみに別バグ報告によるとVistaでは見るレジストリキーが違うらしい

#行ったことでなくてもレジストリ情報があるか,アクセス権が正しいか等を確認するのは価値のあることだと思うよ。

#これは読んでません。全く関係ないかも。
http://support.microsoft.com/kb/914387/ja
    • good
    • 0
この回答へのお礼

早速のご回答、ありがとうございます。

コントロールパネルの件、試して実行してみましたがやはりうまく行きませんでした。

しかしバグ報告は大変参考になりました。

私がCalendarを使えば解決する、としたのは、タイムゾーンの情報を自分で与えてやりさえすれば、ただしく日本時間が表示できるという意味でした。
分かりづらい説明だったことをお詫びします。

お礼日時:2007/11/19 03:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!