legacy-knowledge-base
公開されました Sep. 10, 2025

データベースのエントリーをプログラムで取得する場合、タイムゾーンは手動で変換する必要がありますか?

written-by

Kenny Back

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

問題

  • 以下のようにしてデフォルトのタイムゾーンを変更した:
1. インスタンスの設定 > ローカライゼーション > タイムゾーン > 東部夏時間への変更
2. ユーザーアカウント設定 > 環境設定 > 表示設定 > 東部夏時間への変更
  • プログラムによってデータベースからエントリーを取得する場合、手動で時間を変換する必要があるのか、それとも自動的に変換されるのか。

環境

  • 2023.Q4.8

解像度

  • データベースは常にGMTとして保存され、適切なタイムゾーンで表示するかどうかは開発者次第である。 そのため、それを処理するには、変換を提供する必要がありますが、Liferayにはこれを支援する機能があります。 例えば、ウェブコンテンツの場合、記事の表示日を表示するには、次のようなコードを使うことができる:
<%
Format dateFormat = FastDateFormatFactoryUtil.getDateTime(themeDisplay.getLocale(), themeDisplay.getTimeZone());
%>
<p>Display Date: <%= dateFormat.format(article.getDisplayDate()) %></p>
  • このコードでは、FastDateFormatFactoryUtil を使用して、ユーザーのロケールとユーザーのタイムゾーンを設定した format のインスタンスを取得します。 GMTで表示される実際の日付をフォーマットする場合、フォーマッターはユーザーのローカルタイムゾーンに変換し、期待される方法で表示します。

  • ポータルはこの種のロジックを活用している 。 ThemeDisplayはリクエストごとに適切なロケールとタイムゾーンが設定され、ユーザーのタイムゾーンに設定されます(タイムゾーンが設定されている場合)。 FastDateFormatFactoryUtil には、フォーマット面を制御する引数を取る多くの異なる getDateTime() メソッドがあります (短い日付と長い日付など)。

did-this-article-resolve-your-issue

legacy-knowledge-base