DateTime-XAML-Syntax

Einige Steuerelemente, wie beispielsweise Calendar und DatePicker, verfügen über Eigenschaften, die den Typ DateTime verwenden. Auch wenn Sie in der Regel ein Anfangsdatum oder eine Uhrzeit für diese Steuerelemente im CodeBehind zur Laufzeit angeben, können Sie ein Anfangsdatum oder eine Uhrzeit in XAML angeben. Der WPF-XAML-Parser verarbeitet DateTime-Werte mithilfe einer integrierten XAML-Textsyntax. In diesem Thema werden die Besonderheiten der DateTime-XAML-Textsyntax beschrieben.

Verwenden von DateTime-XAML-Syntax

Das Festlegen von Datumsangaben in XAML ist nicht immer erforderlich und möglicherweise auch nicht erwünscht. Sie können beispielsweise die Eigenschaft DateTime.Now zur Initialisierung einer Datumsangabe zur Laufzeit verwenden oder alle Datumsanpassungen für den Kalender im CodeBehind auf Grundlage von Benutzereingaben vornehmen. Es gibt jedoch Szenarien, in denen Sie möglicherweise Datumsangaben in Calendar und DatePicker in einer Steuerelementvorlage hartcodieren möchten. Verwenden Sie in diesen Fällen die DateTime-XAML-Syntax.

DateTime-XAML-Syntax als natives Verhalten

DateTime ist eine Klasse, die in den CLR-Basisklassenbibliotheken definiert ist. Aufgrund der Art und Weise, in welcher die Basisklassenbibliotheken mit dem Rest der CLR zusammenhängen, ist es nicht möglich, das TypeConverterAttribute auf die Klasse anzuwenden und einen Typkonverter zu verwenden, der Zeichenfolgen aus XAML verarbeitet und sie in DateTime im Laufzeitobjektmodell konvertiert. Es gibt keine DateTimeConverter-Klasse, die das Konvertierungsverhalten ermöglicht. Das in diesem Thema beschriebene Konvertierungsverhalten ist vielmehr ein natives Verhalten im WPF-XAML-Parser.

Formatzeichenfolgen für DateTime-XAML-Syntax

Sie können das Format von DateTime mit einer Formatzeichenfolge angeben. Formatzeichenfolgen formalisieren die Textsyntax, die zum Erstellen eines Werts verwendet werden kann. DateTime-Werte für vorhandene WPF-Steuerelemente verwenden im Allgemeinen nur die Datumskomponenten von DateTime und nicht die Zeitkomponenten.

Zur Angabe von DateTime in XAML können Sie wahlweise jede der Formatzeichenfolgen verwenden.

Sie können auch Formate und Formatzeichenfolgen verwenden, die in diesem Thema nicht speziell beschrieben werden. Technisch gesehen verwendet XAML für jeden DateTime-Wert, der angegeben und dann durch den WPF-XAML-Parser analysiert wird, einen internen Aufruf von DateTime.Parse. Daher können Sie für Ihre XAML-Eingabe eine beliebige Zeichenfolge verwenden, die von DateTime.Parse akzeptiert wird. Weitere Informationen finden Sie unter DateTime.Parse.

Wichtig

Die DateTime XAML-Syntax verwendet immer en-us als CultureInfo für ihre native Konvertierung. Dies wird nicht durch die Werte Language oder xml:lang in XAML beeinflusst, da die XAML-Typkonvertierung auf Attributebene ohne diesen Kontext erfolgt. Versuchen Sie nicht, die hier angezeigten Formatzeichenfolgen aufgrund von kulturellen Abweichungen, wie z. B. der Reihenfolge von Tag und Monat, zu interpolieren. Die hier angezeigten Formatzeichenfolgen sind die genauen Formatzeichenfolgen für die Analyse von XAML unabhängig von anderen Kultureinstellungen.

In den folgenden Abschnitten werden einige der gebräuchlichen DateTime-Formatzeichenfolgen beschrieben.

Kurzes Datumsmuster („d“)

Das kurze Datumsformat für DateTime in XAML sieht folgendermaßen aus:

M/d/YYYY

Dies ist die einfachste Möglichkeit, alle erforderlichen Informationen für eine typische Verwendung durch WPF-Steuerelemente anzugeben. Eine Beeinflussung durch versehentliche Zeitzonenverschiebungen gegenüber einer Zeitkomponente ist nicht vorhanden. Daher wird dieses Format anderen Formaten vorgezogen.

Um z.B. das Datum vom 1. Juni 2010 anzugeben, verwenden Sie die folgende Zeichenfolge:

3/1/2010

Weitere Informationen finden Sie unter DateTimeFormatInfo.ShortDatePattern.

Sortierbares DateTime-Muster („s“)

Das sortierbare DateTime-Muster in XAML sieht folgendermaßen aus:

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

Um z.B. das Datum vom 1. Juni 2010 anzugeben, verwenden Sie die folgende Zeichenfolge (alle Zeitkomponenten werden mit 0 eingegeben):

2010-06-01T000:00:00

RFC1123-Muster („r“)

Das RFC1123-Muster ist hilfreich, da es sich um eine Zeichenfolgeneingabe aus anderen Datumsgeneratoren handeln könnte, die aus kulturinvarianten Gründen auch das RFC1123-Muster verwenden. Das RFC1123 DateTime-Muster in XAML sieht folgendermaßen aus:

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

Um z.B. das Datum vom 1. Juni 2010 anzugeben, verwenden Sie die folgende Zeichenfolge (alle Zeitkomponenten werden mit 0 eingegeben):

Mon, 01 Jun 2010 00:00:00 UTC

Andere Formate und Muster

Wie bereits erwähnt, kann ein DateTime in XAML als beliebige Zeichenfolge angegeben werden, die als Eingabe für DateTime.Parse zulässig ist. Dazu gehören auch andere formalisierte Formate (z. B. UniversalSortableDateTimePattern) und Formate, die nicht als eine bestimmte DateTimeFormatInfo-Form formalisiert sind. Beispielsweise ist YYYY/mm/dd als Eingabe für DateTime.Parsezulässig. In diesem Thema werden nicht alle Formate beschrieben, die funktionieren, sondern das kurze Datumsmuster als Standardverfahren empfohlen werden.

Siehe auch