日付フィールドと日時フィールドへのアクセス

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

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore.Data.Fields.DateFieldクラスを使用して、Date型とDatetime型のデータ テンプレート フィールドにアクセスできます。Sitecore.Data.Fields.DateField.Valueプロパティには、Sitecoreで使用されるISO形式 (yyyyMMddTHHmmss) の文字列として日付と時刻が含まれています。

メモ

.NET日付形式パターンの詳細については、「 http://msdn.microsoft.com/en-us/library/73ctwf33.aspx」を参照してください。

ISO形式の値をSystem.DateTime構造体に変換するには、Sitecore.DateUtil.IsoDateToDateTimeメソッドを使用します。たとえば、Masterデータベースの /Sitecore/Content/HomeアイテムのDateまたはDatetimeフィールドDateTimeFieldにアクセスするには、次のようにします。

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.DateField dateTimeField = home.Fields["datetimefield"];

string dateTimeString = dateTimeField.Value;

DateTime dateTimeStruct = Sitecore.DateUtil.IsoDateToDateTime(dateTimeString);

または、同じ値を表すSystem.DateTime構造体を含むSitecore.Data.Fields.DateField.DateTimeプロパティにアクセスすることもできます。たとえば、Masterデータベースの /Sitecore/Content/HomeアイテムのDateまたはDatetimeフィールド (DateTimeField) にSystem.DateTime構造体としてアクセスするには、次のようにします。

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.DateField dateTimeField = home.Fields["datefield"];

DateTime dateTimeStruct = dateTimeField.DateTime;

DateフィールドまたはDatetimeフィールドの値を更新するには、Sitecore.Data.Fields.DateField.ValueプロパティをISO形式の文字列に更新します。Sitecore.DateUtil.ToIsoDate方法を使用して、System.DateTime構造をISO形式に変換できます。たとえば、Masterデータベースの /Sitecore/Content/HomeアイテムのDateTimeFieldという名前のDatetimeフィールドの値を現在のシステム日付に更新するには、次のようにします。

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.DateField dateTimeField = home.Fields["datetimefield"];

if (dateTimeField != null)
{
    home.Editing.BeginEdit();
    dateTimeField.Value = Sitecore.DateUtil.ToIsoDate(DateTime.Now);
    home.Editing.EndEdit();
}
手記

ユーザーがDateまたはDatetimeタイプのフィールドに値を指定していない場合、Sitecore.Data.Fields.DateField.Value プロパティには空の文字列が含まれ、Sitecore.Data.Fields.DateField.DateTimeプロパティにはSystem.DateTime.MinValueが含まれます。

先端

デフォルトでは、タイプDateのフィールドにはnightの時間値が含まれています。

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