次の方法で共有


DateTime XAML 構文

CalendarDatePickerなどの一部のコントロールには、DateTime型を使用するプロパティがあります。 通常、実行時に分離コードでこれらのコントロールの最初の日付または時刻を指定しますが、XAML で最初の日付または時刻を指定できます。 WPF XAML パーサーは、組み込みの XAML テキスト構文を使用して DateTime 値の解析を処理します。 このトピックでは、 DateTime XAML テキスト構文の詳細について説明します。

DateTime XAML 構文を使用するタイミング

XAML での日付の設定は必ずしも必要ではなく、望ましくない場合もあります。 たとえば、 DateTime.Now プロパティを使用して実行時に日付を初期化したり、ユーザー入力に基づいて分離コード内の予定表のすべての日付調整を実行したりできます。 ただし、日付を Calendar にハードコーディングし、コントロール テンプレートに DatePicker するシナリオもあります。 これらのシナリオでは、 DateTime XAML 構文を使用する必要があります。

DateTime XAML 構文はネイティブ動作です

DateTime は、CLR の基底クラス ライブラリで定義されているクラスです。 基底クラス ライブラリは CLR の残りの部分とどのように関連しているため、クラスに TypeConverterAttribute を適用し、型コンバーターを使用して XAML から文字列を処理し、実行時オブジェクト モデルの DateTime に変換することはできません。 変換動作を提供する DateTimeConverter クラスはありません。このトピックで説明する変換動作は、WPF XAML パーサーにネイティブです。

DateTime の書式設定のための XAML 構文 文字列

書式指定文字列を使用して、 DateTime の形式を指定できます。 書式指定文字列は、値の作成に使用できるテキスト構文を形式化します。 DateTime 既存の WPF コントロールの値は、通常、時刻コンポーネントではなく、 DateTime の日付コンポーネントのみを使用します。

XAML で DateTime を指定する場合は、任意の書式指定文字列を同じ意味で使用できます。

また、このトピックでは特に示されていない書式と書式指定文字列を使用することもできます。 技術的には、WPF XAML パーサーによって指定されて解析される任意の DateTime 値の XAML は、内部呼び出しを介して DateTime.Parse を利用します。そのため、XAML 入力に DateTime.Parse によって受け入れられる任意の文字列を使用することができます。 詳細については、DateTime.Parseを参照してください。

重要

DateTime XAML 構文では、ネイティブ変換のen-usとして常にCultureInfoが使用されます。 XAML 属性レベルの型変換は、そのコンテキストなしで機能するため、これは XAML の Language 値または xml:lang 値の影響を受けないためです。 文化ごとの違いがあるため、ここに示されている書式指定文字列を変更しないでください。日と月の順序が異なる場合があります。 次に示す書式指定文字列は、他のカルチャ設定に関係なく XAML を解析するときに使用される正確な書式指定文字列です。

次のセクションでは、一般的な DateTime 書式指定文字列の一部について説明します。

短い日付パターン ("d")

XAML の DateTime の短い日付形式を次に示します。

M/d/YYYY

これは、WPF コントロールによる一般的な使用方法に必要なすべての情報を指定する最も簡単な形式であり、タイム ゾーンオフセットと時刻コンポーネントの間の偶発的なオフセットの影響を受けないため、他の形式よりも推奨されます。

たとえば、2010 年 6 月 1 日の日付を指定するには、次の文字列を使用します。

3/1/2010

詳細については、DateTimeFormatInfo.ShortDatePatternを参照してください。

並べ替え可能な日付時刻パターン(「s」)

XAML での並べ替え可能な DateTime パターンを次に示します。

yyyy'-'MM'-'dd'T'HH':'mm':'ss

たとえば、2010 年 6 月 1 日の日付を指定するには、次の文字列を使用します (時刻コンポーネントはすべて 0 と入力されます)。

2010-06-01T000:00:00

RFC1123 パターン ("r")

RFC1123パターンは便利です。なぜなら、他の日時生成ツールからの文字列入力にもRFC1123パターンが使われることがあり、文化に依存しない理由で利用されるからです。 XAML のRFC1123 DateTime パターンを次に示します。

ddd, dd MMM yyyy HH':'mm':'ss 'UTC'

たとえば、2010 年 6 月 1 日の日付を指定するには、次の文字列を使用します (時刻コンポーネントはすべて 0 と入力されます)。

Mon, 01 Jun 2010 00:00:00 UTC

その他の形式とパターン

前述のように、XAML の DateTime は、 DateTime.Parseの入力として許容される任意の文字列として指定できます。 これには、他の形式形式 ( UniversalSortableDateTimePatternなど) や、特定の DateTimeFormatInfo 形式として形式化されていない形式が含まれます。 たとえば、フォーム YYYY/mm/dd は、 DateTime.Parseの入力として受け入れられます。 このトピックでは、動作する可能性のあるすべての形式について説明するわけではありません。代わりに、標準の方法として短い日付パターンをお勧めします。

こちらも参照ください