日付/時刻のベストプラクティス
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
次のリストでは、異なるタイムゾーンに分散したマルチインスタンスCMSソリューションで日付/時刻を設定するためのベストプラクティスについて説明します。
-
現地時間の使用は避けてください。 DateTime.Nowプロパティは使用せず、代わりにDateTime.UtcNowを使用してください。
-
日付/時刻変換操作にはSitecore.DateUtilクラスの新しいメソッドのみを使用してください。
-
日付/時刻をデータベースに保存する前に、Sitecore.DateUtilクラスのToUniversalTimeメソッドを使用して日付/時刻を世界時に変換します。
-
SitecoreアプリケーションとUIダイアログは、日付/時刻の値をサーバーのタイム ゾーンで表示する必要があります。UIに日付/時刻の値を表示する前に、Sitecore.DateUtilクラスのToServerTimeメソッドを使用してUTCの日付/時刻をサーバー時刻に変換する必要があります。この変換は、日付/時刻の値をUIコントロールに割り当てる前に、アプリケーション コードまたはダイアログ ボックス ロジックで行うことができます。
-
Sitecore.DateUtilクラスのメソッドを使用して、文字列を日付/時刻に解析し、日付/時刻を文字列に変換します。
-
文字列を日付/時刻に解析する場合は、Sitecore.DateUtilクラスのIsoDateToDateTimeまたはParseDateTimeメソッドを使用します。次のIsoDateToDateTimeメソッドのオーバーロードには、従来の日付をUTC日付として扱うかどうかを指定できるtreatLegacyDatesAsUtcパラメーターがあります。
-
日付/時刻をISO形式の文字列表現に変換する場合は、Sitecore.DateUtilクラスのToIsoDateメソッドを使用します。
-
2つの日付/時刻値を比較する場合は、両方とも同じ種類であることを確認してください。異なる形式の2つの日付/時刻値の比較結果は間違っています。最初に変換を実行して、両方の値が同じ形式であることを確認します。
-
公開API (アイテムの作成日、更新日など) は世界時を返すため、クライアント コードでは世界時を適切に処理する必要があることに注意してください。
-
日付ピッカー コントロールと時刻ピッカー コントロールを使用する場合は、これらのコントロールのValueプロパティに割り当てられた値がサーバー時刻のISO日付であることを確認してください。Sitecore.DateUtilクラスのIsoDateToServerTimeIsoDateメソッドを使用して、UTC ISO日付をサーバー時刻ISO日付に変換できます。
-
日付ピッカー コントロールと時刻ピッカー コントロールからデータベースに入力を保存する場合は、コントロールで選択した日付/時刻の値がUTCに変換されていることを確認してから保存してください。Sitecore.DateUtilクラスのIsoDateToUtcIsoDateメソッドを使用して、サーバー時刻のISO日付をUTC ISO日付に変換できます。
-
Sitecore.Utc属性とSitecore.ServerTime属性を使用して、DateTimeプロパティを設定します。DateTimeを返すDateTimeパラメーターとメソッドは、特定のSitecoreインストールで処理されます。これらの属性は、予想される日付/時刻の種類に関する追加情報を開発者に提供します。