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 godzinę dla tych kontrolek w kodzie w czasie wykonywania, można określić początkową datę lub godzinę w języku XAML. Analizator XAML WPF obsługuje analizowanie DateTime wartości przy użyciu wbudowanej składni tekstu XAML. W tym temacie opisano specyfikę DateTime składni tekstu XAML.

Kiedy używać składni XAML dateTime

Ustawianie dat w języku XAML nie zawsze jest konieczne i może nawet nie być pożądane. Możesz na przykład użyć DateTime.Now właściwości , aby zainicjować datę w czasie wykonywania lub wykonać wszystkie korekty dat kalendarza w kodzie na podstawie danych wejściowych użytkownika. Istnieją jednak scenariusze, w których możesz chcieć umieścić daty CalendarDatePicker w kodzie i w szablonie kontrolki. Składnia DateTime XAML musi być używana w tych scenariuszach.

Składnia XAML dateTime jest zachowaniem natywnym

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

Formatowanie ciągów dla składni XAML dateTime

Można określić format obiektu DateTime z ciągiem formatu. Formatowanie ciągów sformalizuj składnię tekstu, która może służyć do utworzenia wartości. DateTime wartości istniejących kontrolek WPF zwykle używają tylko składników daty, a nie składników DateTime godziny.

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

Możesz również użyć formatów i ciągów formatu, które nie są specjalnie wyświetlane w tym temacie. Technicznie kod XAML dla dowolnej DateTime określonej wartości, a następnie przeanalizowany przez analizator WPF XAML używa wewnętrznego wywołania metody DateTime.Parse, dlatego można użyć dowolnego ciągu akceptowanego przez DateTime.Parse dla danych wejściowych XAML. W celu uzyskania więcej informacji, zobacz następujący temat: DateTime.Parse.

Ważne

Składnia XAML typu DateTime jest zawsze używana en-us jako CultureInfo element konwersji natywnej. Nie ma to wpływu na Language wartość ani xml:lang wartość w języku XAML, ponieważ konwersja typu XAML na poziomie atrybutu działa bez tego kontekstu. Nie należy próbować interpolować ciągów formatu pokazanych tutaj ze względu na odmiany kulturowe, takie jak kolejność wyświetlania dnia i miesiąca. Przedstawione tutaj ciągi formatu to dokładne ciągi formatu używane podczas analizowania kodu XAML niezależnie od innych ustawień kultury.

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

Wzorzec daty krótkiej ("d")

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

M/d/YYYY

Jest to najprostsza forma określająca wszystkie niezbędne informacje dla typowych użycia przez kontrolki WPF i nie może mieć wpływu na przypadkowe przesunięcia strefy czasowej w porównaniu ze składnikiem czasu, 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

W celu uzyskania więcej informacji, zobacz następujący temat: DateTimeFormatInfo.ShortDatePattern.

Wzorzec daty/godziny sortowania ("s")

Poniżej przedstawiono wzorzec sortowania DateTime w 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ć dane wejściowe ciągu z innych generatorów dat, które również używają wzorca RFC1123 ze względów niezmiennych kultury. 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, DateTime element w 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ślony DateTimeFormatInfo formularz. Na przykład formularz YYYY/mm/dd jest akceptowalny jako dane wejściowe dla elementu DateTime.Parse. Ten temat nie próbuje opisać wszystkich możliwych formatów, które działają, i zamiast tego zaleca wzorzec daty krótkiej jako standardową praktykę.

Zobacz też