1. デートタイム

日付・時刻のベストプラクティス

Version:
日本語翻訳に関する免責事項

このページの翻訳は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パラメータがあります。

    public static DateTime IsoDateToDateTime(CanBeNull string isoDate, DateTime defaultValue, bool 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パラメータやメソッドは特定のSitecoreインストールで処理されますDateTime。これらの属性は、開発者に対して期待される日付や時間の追加情報を提供します。

この記事を改善するための提案がある場合は、 お知らせください!