JVM レベルでタイムゾーン設定を変更すると (tomcat のsetenv.bat
またはsetenv.sh
)、その JVM で実行されているすべてのプロセスに影響を与えます。
この記事では、JVMレベルでタイムゾーンがGMTに設定されていない場合に発生する可能性のあるいくつかの既知の問題について説明します。
決議
1. カレンダーポートレットが正しく機能しない場合があります。
JVM レベルでタイムゾーンが GMT に設定されていない場合、エクスポートした .ics ファイルを Microsoft Outlook にインポートした後、Calendar ポートレットからエクスポートした終日イベントの開始日と終了日が正しく表示されないことがあります。 根本的な原因は、JVMレベルでタイムゾーンを変更すると、ポータルが全日イベントの開始日と終了日を誤って計算してしまうことです。
また、別の関連する問題として、LPS-33526.
2. 日付フィールドを持つ構造体を使用して作成されたWebコンテンツでは、公開後に誤った日付が表示される
JVMレベルでタイムゾーンがGMTに設定されていない場合、例えば、-Duser.timezone = Europe/Berlinに設定されている場合、Dateフィールドを持つ構造体を使用して作成されたWebコンテンツは、公開後に誤った日付が表示されます。
- -Duser.timezoneがヨーロッパ/バーリンと等しくなるように、環境に応じたsetenvを設定してください。
-Duser.timezone=ヨーロッパ/ベルリン
- ライフレイの開始
- 管理者 > サイト管理 > コンテンツ > ウェブコンテンツに移動します。
- 日付フィールドを含む新しい構造体を追加し、テンプレートに割り当てます。
- ステップ4で作成した構造とテンプレートで新しい記事を作成し、日付フィールドに日付を選択します。
発行後、日付がステップ5で設定した日付よりも前の日に設定されていることを確認してください。
要約すると、ポータルのデータベースに保存されている各日付は、グリニッジ標準時に保存されている(はずの)ものです。 ポータルが保存されている日付をエンドユーザーに表示する必要がある場合、ポータルは、アプリケーションサーバーの現在の日付(この日付は、設定されたJVMレベルのタイムゾーンによって影響を受けます)と保存されているGMT形式の日付に基づいて表示日を計算します。 表示日付が正しく計算されるようにするためには、JVMレベルでタイムゾーンをGMTに設定する必要があります。 そうでない場合は、タイムゾーンオフセットが正しくないため、表示される日付が間違って計算されて表示されてしまいます。