Freigeben über


DateTime-XAML-Syntax

Einige Steuerelemente, z. B. Calendar und DatePicker, weisen Eigenschaften auf, die den DateTime Typ 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.

Wann die DateTime-XAML-Syntax verwendet werden sollte

Das Festlegen von Datumsangaben in XAML ist nicht immer erforderlich und ist möglicherweise nicht einmal wünschenswert. 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 Szenarios, in denen Sie Datumsangaben in Calendar und DatePicker in eine Steuerelementvorlage hartcodieren müssen. Die DateTime XAML-Syntax muss für diese Szenarien verwendet werden.

DateTime-XAML-Syntax als natives Verhalten

DateTime ist eine Klasse, die in den Basisklassenbibliotheken der CLR definiert ist. Aufgrund der Beziehung der Basisklassenbibliotheken zum Rest der CLR ist es nicht möglich, TypeConverterAttribute auf die Klasse anzuwenden und einen Typkonverter zum Verarbeiten von Zeichenfolgen aus XAML zu verwenden und sie im Laufzeitobjektmodell in DateTime zu konvertieren. Es gibt keine DateTimeConverter Klasse, die das Konvertierungsverhalten bereitstellt; Das in diesem Thema beschriebene Konvertierungsverhalten ist nativ für den 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 der XAML können Sie wahlweise jede der Formatzeichenfolgen verwenden.

Sie können auch Formate und Formatzeichenfolgen verwenden, die nicht speziell in diesem Thema gezeigt werden. Technisch gesehen verwendet die XAML für jeden DateTime-Wert, der angegeben und dann durch den WPF-XAML-Parser geparst 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. Der Wert von Language oder xml:lang im XAML beeinflusst dies nicht, da die Typkonvertierung auf der Attribut-Ebene im XAML ohne diesen Kontext erfolgt. Versuchen Sie nicht, die hier gezeigten Formatzeichenfolgen zu interpolieren, da kulturelle Unterschiede, wie beispielsweise die Reihenfolge von Tag und Monat, berücksichtigt werden müssen. Die hier gezeigten Formatzeichenfolgen sind die genauen Formatzeichenfolgen, die beim Analysieren des XAML verwendet werden, unabhängig von anderen Kultureinstellungen.

In den folgenden Abschnitten werden einige der allgemeinen 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 möglich. Daher wird dieses Format anderen Formaten vorgezogen.

Um beispielsweise 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 der XAML sieht folgendermaßen aus:

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

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

2010-06-01T000:00:00

RFC1123-Muster („r“)

Das RFC1123-Muster ist nützlich, da es sich um eine Zeichenfolgeneingabe aus anderen Datumsgeneratoren handeln könnte, die das RFC1123-Muster aus kulturunabhängigen Gründen ebenfalls verwenden. Das RFC1123-DateTime-Muster in der XAML sieht folgendermaßen aus:

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

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

Mon, 01 Jun 2010 00:00:00 UTC

Andere Formate und Muster

Wie bereits erwähnt, kann eine DateTime in XAML als beliebige Zeichenfolge angegeben werden, die als Eingabe für DateTime.Parseakzeptabel ist. Dazu gehören andere formalisierte Formate (z. B. UniversalSortableDateTimePattern) und solche, die nicht als ein spezielles DateTimeFormatInfo-Format formuliert sind. Beispielsweise ist das Formular YYYY/mm/dd als Eingabe für DateTime.Parseakzeptabel. In diesem Artikel werden nicht alle funktionierenden Formate beschrieben. Stattdessen wird das kurze Datumsmuster als Standardverfahren empfohlen.

Siehe auch