legacy-knowledge-base
公開されました Jul. 2, 2025

GMTではないユーザー.timezoneを使用した場合の問題への対応

投稿者

Justin Choi

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

Liferayサポートは、特定のサードパーティ製品を他の製品よりも推奨したり、推奨したりすることはありません。 Liferayは、これらの製品に関して、ここに記載されている指示や参照されている指示には一切責任を負いません。 これらの原則の実施は、すべて加入者の責任となります。

ベストプラクティスとして、すべてのDXPとPortalインスタンスでタイムゾーンをGMTに設定することを強くお勧めします。その他、GMT 以外のタイムゾーンを使用すると、いくつかの既知の問題が発生しました。

したがって、この記事は、JVMががGMTに設定されていない場合に、管理者がJVMレベルでタイムゾーンを変更して問題を修正するのを支援することを目的としています。 ある特定の問題が発見され、DDMの日付フィールドに誤った日付が入力されていました。

Liferayサポートでは、影響を最小限に抑えてJVMをアップデートするために使用できるGroovyスクリプトをいくつか提供しています。 これらのスクリプトは、適応可能なテンプレートでもあります。 システム管理者は、スクリプトを実行する前に、 常に 最初にスクリプトを検証しなければなりません。Liferay サポートは、スクリプトをリソースとしてのみ提供しており、それ以外の場合は実装を支援することが制限されています。

決議

Liferayポータル6.2で実行する手順

  1. LPS-64179のコード変更を組み込んだ修正パックまたは hotfix をインストールしてください。
  2. 可能であれば、アプリケーションサーバを停止し、JVMの設定をGMTに変更してください(サーバを停止することができない、または実行可能でない場合は、次のステップに進んでください)。
  3. 復旧のためにすべてのデータをバックアップします。
  4. コントロールパネル > サーバー管理 > スクリプトタブに移動してスクリプトを実行します。 言語] ドロップダウンメニューでGroovyを選択します。
  5. Scriptウィンドウで、添付のGroovyスクリプトの内容を入力します。 このスクリプトは、Journal ArticlesからDDMの日付フィールドを調整します。 以下の設定に注意してください。
    //-----------------------------------------------------
    /*defaultTimeZoneID = "PST";*/
    defaultTimeZoneID = TimeZone.getDefault().getID();
    beginYear = 2016;
    beginMonth = 6; //STARTS IN 0
    beginDay = 8;
    beginHour = 0;
    beginMinutes = 0;
    endYear = 2016;
    endMonth = 6; //STARTS IN 0
    endDay = 14;
    endHour = 23;
    endMinutes = 59;
    //---------------------------------------------------
    
    
    • デフォルトタイムゾーンID

      これは、元々の時間帯から変更されているものです。 スクリプトではPSTと書いてあります。 このスクリプトはすべてのデータをGMT / UTCに変換します。

    • 開始年、開始月

      変換する開始時間帯が間違っています。

    • 年度末、月末

      これは変換されるべき終了時間帯が間違っている。

  6. 時間が正しいことに満足したら、すぐに変更を実装することを選択することができます。 これを行うには、Groovyスクリプトに修正する必要がある設定があります。

    runDry =false;
    デフォルト値は=trueです。
  7. スクリプトを実行します。 日付と Web コンテンツ記事の数が変更されたことを示すメッセージがコントロールパネルとコンソールの両方に表示されます。 すべてのコンテンツは、UTC形式で正しい時刻になっている必要があります。

DDM テンプレート

一部のDDMテンプレートでは、タイムゾーンのない日付が表示されます。 Groovyスクリプトは、user.timezoneをGMTに変更したくない場合にのみ使用されます。 変更するには、サーバーをシャットダウンして、portal-ext.propertiesの以下のセットを再起動します。

verify.frequency=-1

verify.processes=com.liferay.portal.verify.VerifyDynamicDataMapping

DXP 7.1での実行手順

  1. 可能であれば、アプリケーションサーバを停止し、JVMの設定をGMTに変更します(サーバの停止が不可能な場合や実行可能な場合は、次のステップに進みます)。
  2. 復旧のためにすべてのデータをバックアップします。
  3. コントロールパネル → 設定 → サーバー管理 → スクリプトタブに移動してスクリプトを実行します。
  4. 言語」ドロップダウンメニューで「Groovy」を選択します。
  5. スクリプトウィンドウで、Groovyスクリプトの内容を入力します。 アセットエントリー、メッセージボード、Webコンテンツを使用している場合。 それに応じてスクリプトを適応させます。
  6. をクリックしてを実行します。

重要:DXP 7.1で動作するように設計されたスクリプトが3つあります。AssetEntryTimezone、MessageBoardTimezone、WebContentTimezoneです。 3つすべてを同時に使用しないと、同じデータベース内でミスマッチが発生します。

追加情報

上記で参照したGroovyスクリプトはこの記事に添付されており、Portal 6.2で使用するものです。

また、以下も参照してください。JVMレベルでのタイムゾーン設定の問題およびLPS-64179.

did-this-article-resolve-your-issue

legacy-knowledge-base