2010-11-24 4 views
2

グリーティングすべての 私は春のフレームワーク を使用してj2eeアプリケーションを持っていると、オンラインサーバー(centos os) でデバッグ中に、new Date();オブジェクトの の値を印刷してアプリケーションで日付を取得しようとしているとき、GMT-サーバーの時刻を コマンドのターミナルで取得すると、GMT時間、リアルタイムで取得されるので、GMT-6はどこから来たのだろうと思っています。なぜそのような奇妙なbehaverが発生するのですか?CentOS OS上のJavaで日付を取得するのは間違っていますか?

答えて

0

問題は、Apache Tomcatを再起動した後に解決されますが、そのような動作がなぜ発生するのかまだ分かりません。

+0

アプリケーションのコードがデフォルトのJVMワイドタイムゾーンを変更していないことを確認します。 –

+0

どうすればいいと思いますか教えてください。 –

0

デフォルトのタイムゾーンはTimeZone.setDefault(..)で変更されましたか?

+0

は、アプリ全体を検索したが、タイムゾーンをデフォルトに設定していなかった。 –

1

これはロケールの問題のようです。具体的には、それは問題ではなく、それは異なるタイムゾーン/地域の設定を処理するJavaの方法です。

this articleからコードを使用する:Javaは、ご使用の環境をどのように解釈するか

Properties p = System.getProperties(); 
Enumeration keys = p.keys(); 
while (keys.hasMoreElements()) { 
    String key = (String)keys.nextElement(); 
    String value = (String)p.get(key); 
    System.out.println(key + ": " + value); 
} 

あなたが見ることができます。

あなたはCentOSの」タイムゾーン/地域設定を変更する場合は、Javaはそれに応じてその変更や表示時間を拾う必要があります。

しかし、それはやり過ぎのように聞こえるとロケールに基づいてcustomizing date formatは何が必要かもしれません。

異なるアプリケーションでは、同じ日付を別々に出力することがあります。

+0

私の上の答えを見てください、あなたはどう思いますか教えてください? –

+0

@ sword101:出力されたGMT-6時間は正しいですか?再起動するともう一度やりますか?はいの場合、いつですか?あなたのデバッガーは何ですか? – darioo

+0

はい、GMT-6で正しいです。はい、再起動してからもう一度やりますが、ここにパターンがないので、log4jでデバッグしています... –

関連する問題