DateTime — Składnia XAML

Niektóre kontrolki, takie jak Calendar i DatePicker, mają właściwości, które używają DateTime typu . Chociaż zazwyczaj określasz początkową datę lub czas dla tych kontrolek w kodzie w czasie działania, możesz określić początkową datę lub czas w języku XAML. Parser WPF XAML obsługuje analizowanie DateTime wartości przy użyciu wbudowanej składni tekstu XAML. W tym temacie opisano specyfikę składni tekstu DateTime XAML.

Kiedy używać składni języka XAML DateTime

Ustawianie dat w języku XAML nie zawsze jest konieczne i może nawet nie być pożądane. Na przykład możesz DateTime.Now użyć właściwości , aby zainicjować datę w czasie uruchamiania lub wykonać wszystkie korekty daty dla kalendarza w kodzie opartym na danych wejściowych użytkownika. Istnieją jednak scenariusze, w których możesz chcieć zakodować daty na CalendarDatePicker i w szablonie kontrolki. W DateTime przypadku tych scenariuszy należy użyć składni XAML.

Składnia języka XAML DateTime jest zachowaniem natywnym

DateTime jest klasą zdefiniowaną w bibliotekach klas bazowych clr. Ze względu na sposób, w jaki biblioteki klas bazowych odnoszą się do pozostałej części clr, TypeConverterAttribute nie można zastosować do klasy i użyć konwertera typów do przetwarzania ciągów z języka XAML DateTime i konwertowania ich na w modelu obiektów czasu uruchamiania. Nie ma klasy DateTimeConverter , która zapewnia zachowanie konwersji. Zachowanie konwersji opisane w tym temacie jest natywne dla parsera XAML WPF.

Ciągi formatu dla składni Języka XAML DateTime

Można określić format ciągu DateTime formatu. Ciągi formatu sformalizują składnię tekstu, która może służyć do tworzenia wartości. DateTime Wartości istniejących kontrolek WPF zwykle używają tylko składników daty, DateTime a nie składników czasu.

Podczas określania elementu w DateTime języku XAML można używać dowolnego z ciągów formatu zamiennie.

Można również używać formatów i ciągów formatu, które nie są specjalnie pokazane w tym temacie. Technicznie rzecz ujmuje się, że kod XAML DateTime dla dowolnej wartości, która jest określona, a następnie analizowana przez parser DateTime.ParseXAML WPF, używa wewnętrznego wywołania metody , w DateTime.Parse związku z czym można użyć dowolnego ciągu akceptowanego przez element dla danych wejściowych XAML. Aby uzyskać więcej informacji, zobacz DateTime.Parse.

Ważne

Składnia języka XAML DateTime zawsze używa en-us elementu jako elementu CultureInfo do konwersji natywnej. Nie ma na to wpływu wartość Language ani xml:lang wartość w języku XAML, ponieważ konwersja typu na poziomie atrybutu XAML działa bez tego kontekstu. Nie należy próbować interpolować wyświetlanych tutaj ciągów formatu ze względu na różnice kulturowe, takie jak kolejność, w jakiej dzień i miesiąc występują. Przedstawione tutaj ciągi formatu są dokładnymi ciągami formatu używanymi podczas analizowania kodu XAML niezależnie od innych ustawień kultury.

W poniższych sekcjach opisano niektóre typowe ciągi DateTime formatu.

Wzorzec daty krótkiej ("d")

Poniżej przedstawiono format daty krótkiej dla elementu w DateTime języku XAML:

M/d/YYYY

Jest to najprostsza forma, która określa wszystkie niezbędne informacje dla typowych zastosowań kontrolek WPF i nie może mieć na nie wpływu przypadkowe przesunięcie strefy czasowej w porównaniu ze składnikiem czasu i dlatego jest zalecana w innych formatach.

Aby na przykład określić datę 1 czerwca 2010 r., użyj następującego ciągu:

3/1/2010

Aby uzyskać więcej informacji, zobacz DateTimeFormatInfo.ShortDatePattern.

Sortable DateTime Pattern ("s")

Poniżej przedstawiono wzorzec sortowania w DateTime języku XAML:

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

Aby na przykład określić datę 1 czerwca 2010 r., użyj następującego ciągu (wszystkie składniki czasu są wprowadzane jako 0):

2010-06-01T000:00:00

Wzorzec RFC1123 ("r")

Wzorzec RFC1123 jest przydatny, ponieważ może to być ciąg wejściowy z innych generatorów dat, które również używają wzorca RFC1123 ze względu na niezmienną kulturę. Poniżej przedstawiono wzorzec RFC1123 DateTime w języku XAML:

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

Aby na przykład określić datę 1 czerwca 2010 r., użyj następującego ciągu (wszystkie składniki czasu są wprowadzane jako 0):

Mon, 01 Jun 2010 00:00:00 UTC

Inne formaty i wzorce

Jak wspomniano wcześniej, w DateTime języku XAML można określić jako dowolny ciąg, który jest akceptowalny jako dane wejściowe dla elementu DateTime.Parse. Obejmuje to inne sformalizowane formaty (na przykład UniversalSortableDateTimePattern) i formaty, które nie są sformalizowane jako określonej DateTimeFormatInfo formy. Na przykład formularz jest akceptowalny YYYY/mm/dd jako dane wejściowe dla .DateTime.Parse W tym temacie nie opisano wszystkich możliwych formatów, które działają, a zamiast tego zaleca wzorzec daty krótkiej jako standardową praktykę.

Zobacz też