DateTime XAML 構文
Calendar や DatePickerなどの一部のコントロールには、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 の形式を指定できます。 書式指定文字列は、値の作成に使用できるテキスト構文を形式化します。 既存の WPF コントロールの DateTime 値は、通常、時刻コンポーネントではなく、DateTime の日付コンポーネントのみを使用します。
XAML で DateTime を指定する場合は、任意の書式指定文字列を同じ意味で使用できます。
また、このトピックでは特に示されていない書式と書式指定文字列を使用することもできます。 技術的には、WPF XAML パーサーによって指定されて解析される任意の DateTime 値の XAML は、DateTime.Parseを内部的に呼び出しているため、XAML 入力には DateTime.Parse で受け入れられる任意の文字列を使用できます。 詳細については、DateTime.Parseを参照してください。
大事な
DateTime XAML 構文では、ネイティブ変換の CultureInfo として常に en-us
が使用されます。 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の入力として受け入れられます。 このトピックでは、動作する可能性のあるすべての形式について説明するわけではありません。代わりに、標準の方法として短い日付パターンをお勧めします。
関連項目
.NET Desktop feedback