Tomcat アプリケーションを実行していて、いくつかの時間値を表示する必要があります。残念ながら、時間は 1 時間遅れています。調べたところ、デフォルトの TimeZone が次のように設定されていることがわかりました。
sun.util.calendar.ZoneInfo[id="GMT-08:00",
offset=-28800000,
dstSavings=0,
useDaylight=false,
transitions=0,
lastRule=null]
太平洋時間帯ではなく。これは、デフォルトのタイムゾーンの表示名を印刷しようとするとさらに示され、「GMT-08:00」が表示されます。これは、米国太平洋タイムゾーンに正しく設定されていないことを示しているようです. Gutsy Gibbon からアップグレードした Ubuntu Hardy Heron で実行しています。
関連するすべての夏時間情報とともに Pacific を使用するように JRE に指示するために更新できる構成ファイルはありますか? 私のマシンの時刻は正しく表示されるので、OS 全体の設定ミスではないようです。
よし、アップデートだ。同僚は、/etc/profile の JAVA_OPTS を更新して「-Duser.timezone=US/Pacific」を含めることを提案しましたが、これはうまくいきました (更新した CATALINA_OPTS も見ました)。実際には、新しい /etc/profile を使用するのではなく、変更を変数にエクスポートしただけです (後で再起動すると変更が反映され、ゴールドになります)。
しかし、私はまだより良い解決策があると思います...Javaが使用しているタイムゾーン、またはタイムゾーンを取得する方法を示すJavaの構成がどこかにあるはずです。誰かがそのような設定を知っていれば、それは素晴らしいことですが、今のところ、これは適切な回避策です.
私は 1.5 を使用していますが、これは間違いなく DST の問題です。ご覧のとおり、タイム ゾーンは夏時間を使用しないように設定されています。私の考えでは、特定の太平洋タイムゾーンではなく、一般的にオフセットが -8 に設定されています。一般的な -8 オフセットには夏時間情報がないため、もちろん使用していませんが、問題は、起動時に Java に太平洋標準時を使用するようにどこで指示すればよいかということです。プログラムによるソリューションを探しているのではなく、構成ソリューションである必要があります。