Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Alguns controles, como Calendar e DatePicker, têm propriedades que usam o tipo DateTime. Embora normalmente se especifique uma data ou hora inicial para esses controlos no code-behind durante a execução, é possível especificar uma data ou hora inicial em XAML. O analisador WPF XAML lida com a análise de valores de DateTime usando uma sintaxe de texto XAML interna. Este tópico descreve as especificidades da sintaxe de texto XAML DateTime.
Como e Quando utilizar a sintaxe XAML DateTime
Definir datas em XAML nem sempre é necessário e pode até não ser desejável. Por exemplo, pode-se usar a propriedade DateTime.Now para inicializar uma data em tempo de execução, ou pode fazer todos os ajustes de data para um calendário no código subjacente com base na entrada do usuário. No entanto, há cenários em que você pode querer codificar datas em um Calendar e DatePicker em um modelo de controle. A sintaxe XAML DateTime deve ser usada para esses cenários.
A sintaxe XAML DateTime é um comportamento nativo
DateTime é uma classe definida nas bibliotecas de classes base do CLR. Devido à forma como as bibliotecas de classes base se relacionam com o resto do CLR, não é possível aplicar TypeConverterAttribute à classe e usar um conversor de tipo para processar cadeias de caracteres de XAML e convertê-las em DateTime no modelo de objeto de tempo de execução. Não há nenhuma classe DateTimeConverter que forneça o comportamento de conversão; o comportamento de conversão descrito neste tópico é nativo do analisador WPF XAML.
Formatar cadeias de caracteres para sintaxe XAML DateTime
Você pode especificar o formato de um DateTime com uma cadeia de caracteres de formato. As cadeias de caracteres de formato formalizam a sintaxe de texto que pode ser usada para criar um valor. Os valores de DateTime para os controlos WPF existentes geralmente usam apenas os componentes de data de DateTime; não os componentes de hora.
Ao especificar um DateTime em XAML, você pode usar qualquer uma das cadeias de caracteres de formato de forma intercambiável.
Você também pode usar formatos e cadeias de caracteres de formato que não são mostrados especificamente neste tópico. Tecnicamente, o XAML para qualquer valor de DateTime especificado, ao ser analisado pelo analisador de XAML do WPF, usa uma chamada interna para DateTime.Parse, podendo assim utilizar qualquer cadeia de caracteres aceita por DateTime.Parse para a sua entrada XAML. Para obter mais informações, consulte DateTime.Parse.
Importante
A sintaxe XAML DateTime usa sempre en-us como o CultureInfo para a sua conversão nativa. Isso não é influenciado pelo valor Language ou pelo valor xml:lang no XAML, porque a conversão de tipo ao nível de atributo no XAML age sem esse contexto. Não tente interpolar as cadeias de caracteres de formato mostradas aqui devido a variações culturais, como a ordem em que o dia e o mês aparecem. As cadeias de caracteres de formato mostradas aqui são as cadeias de caracteres de formato exatas usadas ao analisar o XAML, independentemente de outras configurações de cultura.
As seções a seguir descrevem algumas das cadeias de caracteres de formato DateTime comuns.
Padrão de data curta ("d")
O seguinte apresenta o formato de data abreviada para um DateTime em XAML:
M/d/YYYY
Esta é a forma mais simples que especifica todas as informações necessárias para usos típicos por controles WPF e não pode ser influenciada por deslocamentos acidentais de fuso horário versus um componente de tempo e, portanto, é recomendada em relação aos outros formatos.
Por exemplo, para especificar a data de 1º de junho de 2010, use a seguinte cadeia de caracteres:
3/1/2010
Para obter mais informações, consulte DateTimeFormatInfo.ShortDatePattern.
Padrão DateTime Classificável ("s")
O seguinte mostra o padrão classificável DateTime em XAML.
yyyy'-'MM'-'dd'T'HH':'mm':'ss
Por exemplo, para especificar a data de 1º de junho de 2010, use a seguinte cadeia de caracteres (os componentes de tempo são todos inseridos como 0):
2010-06-01T000:00:00
RFC1123 Padrão ("r")
O padrão RFC1123 é útil porque pode ser uma cadeia de caracteres de entrada de outros geradores de data que também usam o padrão RFC1123 por razões de invariância cultural. A seguir mostra o padrão RFC1123 DateTime em XAML:
ddd, dd MMM yyyy HH':'mm':'ss 'UTC'
Por exemplo, para especificar a data de 1º de junho de 2010, use a seguinte cadeia de caracteres (os componentes de tempo são todos inseridos como 0):
Mon, 01 Jun 2010 00:00:00 UTC
Outros Formatos e Padrões
Como dito anteriormente, um DateTime em XAML pode ser especificado como qualquer cadeia de caracteres aceitável como entrada para DateTime.Parse. Isso inclui outros formatos formalizados (por exemplo, UniversalSortableDateTimePattern) e formatos que não são formalizados como um formulário DateTimeFormatInfo específico. Por exemplo, o formulário YYYY/mm/dd é aceitável como entrada para DateTime.Parse. Este tópico não tenta descrever todos os formatos possíveis que funcionam e, em vez disso, recomenda o padrão de data abreviada como uma prática padrão.
Ver também
.NET Desktop feedback