DateTime – syntaxe v jazyce XAML
Některé ovládací prvky, například Calendar a DatePicker, mají vlastnosti, které používají typ DateTime . I když obvykle zadáváte počáteční datum nebo čas těchto ovládacích prvků v kódu za běhu, můžete v XAML zadat počáteční datum nebo čas. Analyzátor WPF XAML zpracovává analýzu DateTime hodnot pomocí integrované textové syntaxe XAML. Toto téma popisuje specifika DateTime syntaxe textu XAML.
Kdy použít syntaxi XAML DateTime
Nastavení dat v XAML není vždy nutné a nemusí být ani žádoucí. Vlastnost můžete například použít DateTime.Now k inicializaci data v době běhu nebo můžete provést všechny úpravy data pro kalendář v kódu na základě vstupu uživatele. Existují však scénáře, ve kterých můžete chtít pevně zakódovat data do Calendar šablony ovládacího prvku a DatePicker do šablony ovládacího prvku. Pro DateTime tyto scénáře je nutné použít syntaxi XAML.
Syntaxe DateTime XAML je nativní chování
DateTime je třída, která je definována v knihovnách základních tříd CLR. Vzhledem k tomu, jak knihovny základní třídy souvisí se zbytkem CLR, není možné použít TypeConverterAttribute pro třídu a použít převaděč typů ke zpracování řetězců z XAML a převést je do DateTime modelu modulu runtime objektu. Neexistuje žádná DateTimeConverter
třída, která poskytuje chování převodu; chování převodu popsané v tomto tématu je nativní pro analyzátor WPF XAML.
Formátovací řetězce pro syntaxi DATETime XAML
Můžete zadat formát DateTime řetězce formátu. Formátovací řetězce formalizují textovou syntaxi, kterou lze použít k vytvoření hodnoty. DateTime hodnoty pro existující ovládací prvky WPF obecně používají pouze součásti DateTime data a nikoli časové komponenty.
Při zadávání kódu DateTime XAML můžete použít libovolný formátovací řetězec zaměnitelně.
Můžete také použít formáty a formátovací řetězce, které nejsou výslovně uvedeny v tomto tématu. Kód XAML pro libovolnou DateTime zadanou hodnotu a následně parsovaný analyzátorem WPF XAML používá interní volání DateTime.Parse, a proto můžete použít libovolný řetězec přijatý DateTime.Parse pro vstup XAML. Další informace najdete na webu DateTime.Parse.
Důležité
Syntaxe DateTime XAML se vždy používá en-us
jako CultureInfo nativní převod. To není ovlivněno Language hodnotou nebo xml:lang
hodnotou v XAML, protože převod typu na úrovni atributu XAML funguje bez tohoto kontextu. Nepokoušejte se interpolovat formátovací řetězce zobrazené zde z důvodu kulturních variací, například pořadí, ve kterém se den a měsíc zobrazují. Zde uvedené řetězce formátu jsou přesné formátovací řetězce použité při analýze XAML bez ohledu na ostatní nastavení jazykové verze.
Následující části popisují některé běžné DateTime řetězce formátu.
Vzor krátkého data ("d")
Následující příklad ukazuje krátký formát data pro DateTime jazyk XAML:
M/d/YYYY
Jedná se o nejjednodušší formulář, který určuje všechny nezbytné informace pro typické použití ovládacími prvky WPF a nemůže být ovlivněn náhodným posunem časového pásma oproti časové komponentě, a proto se doporučuje v jiných formátech.
Pokud chcete například zadat datum 1. června 2010, použijte následující řetězec:
3/1/2010
Další informace najdete na webu DateTimeFormatInfo.ShortDatePattern.
Seřaditelný vzor data a času ("s")
Následující příklad znázorňuje seřaditelný DateTime vzor v XAML:
yyyy'-'MM'-'dd'T'HH':'mm':'ss
Pokud chcete například zadat datum 1. června 2010, použijte následující řetězec (všechny časové komponenty jsou zadány jako 0):
2010-06-01T000:00:00
vzor RFC1123 ("r")
Vzor RFC1123 je užitečný, protože by to mohl být řetězcový vstup z jiných generátorů kalendářních dat, které také používají vzor RFC1123 z neutrálních důvodů jazykové verze. Následující příklad ukazuje vzor RFC1123 DateTime v JAZYCE XAML:
ddd, dd MMM yyyy HH':'mm':'ss 'UTC'
Pokud chcete například zadat datum 1. června 2010, použijte následující řetězec (všechny časové komponenty jsou zadány jako 0):
Mon, 01 Jun 2010 00:00:00 UTC
Jiné formáty a vzory
Jak jsme uvedli dříve, lze v XAML zadat jako libovolný řetězec, DateTime který je přijatelný jako vstup pro DateTime.Parse. To zahrnuje i jiné formalizované formáty (například UniversalSortableDateTimePattern) a formáty, které nejsou formalizovány jako konkrétní DateTimeFormatInfo formulář. Například formulář YYYY/mm/dd
je přijatelný jako vstup pro DateTime.Parse. Toto téma se nepokouší popsat všechny možné formáty, které fungují, a místo toho doporučuje krátký vzor kalendářních dat jako standardní postup.
Viz také
.NET Desktop feedback