Share via


Sintaxe DateTime (XAML)

Alguns controles, como Calendar e DatePicker, têm propriedades que usam o DateTime tipo. Embora você normalmente especifique uma data ou horário inicial para esses controles no code-behind no tempo de execução, você poderá especificar uma data ou horário inicial na linguagem XAML. O analisador XAML do WPF manipula a análise de valores usando uma sintaxe de DateTime texto XAML interna. Este tópico descreve as especificidades da sintaxe de DateTime texto XAML.

Quando usar a sintaxe DateTime (XAML)

A configuração das datas na linguagem XAML nem sempre é necessária e pode nem mesmo ser desejável. Por exemplo, você pode usar a DateTime.Now propriedade para inicializar uma data em tempo de execução ou pode fazer todos os ajustes de data para um calendário no code-behind com base na entrada do usuário. No entanto, há cenários em que você pode querer codificar datas em um e DatePicker em um Calendar modelo de controle. A DateTime sintaxe XAML deve ser usada para esses cenários.

A sintaxe DateTime (XAML) é um comportamento nativo

DateTime é uma classe definida nas bibliotecas de classes base do CLR. Devido a como as bibliotecas de classes base se relacionam com o restante 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 DateTime no modelo de objeto de tempo de execução. Não há nenhuma classe DateTimeConverter que fornece o comportamento de conversão; o comportamento de conversão descrito neste tópico é nativo para o analisador de XAML do WPF.

Cadeias de caracteres de formato para obter a sintaxe DateTime (XAML)

Você pode especificar o formato de um DateTime com uma sequência de caracteres de formato. As cadeias de caracteres de formato formalizam a sintaxe de texto que pode ser usada para criar um valor. DateTime valores para os controles WPF existentes geralmente usam apenas os componentes de data e não os componentes de DateTime hora.

Ao especificar um em XAML, você pode usar qualquer uma DateTime das cadeias de caracteres de formato alternadamente.

Você também pode usar os formatos e as cadeias de caracteres de formato que não são mostradas especificamente neste tópico. Tecnicamente, o XAML para qualquer valor especificado e, em seguida, analisado pelo analisador XAML do WPF usa uma chamada interna para , portanto, você pode usar qualquer DateTime cadeia de caracteres aceita por DateTime.Parse para DateTime.Parsesua entrada XAML. Para obter mais informações, consulte DateTime.Parse.

Importante

A sintaxe XAML DateTime sempre é usada en-us como para CultureInfo sua conversão nativa. Isso não é influenciado pelo Language valor ou xml:lang valor no XAML, porque a conversão de tipo de nível de atributo 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 na qual o dia e o mês aparecem. As cadeias de caracteres de formato mostradas aqui são as cadeias de caracteres de formato exato usadas durante a análise de XAML, independentemente de outras configurações de cultura.

As seções a seguir descrevem algumas das cadeias de caracteres de formato comuns DateTime .

Padrão de data abreviada ("d")

A seguir mostra o formato de data abreviada para um DateTime em XAML:

M/d/YYYY

Essa é a forma mais simples que especifica todas as informações necessárias para usos típicos por controles do WPF e não pode ser influenciada por deslocamentos de fuso horário acidentais em relação a um componente de tempo e, portanto, recomendável em outros formatos.

Por exemplo, para especificar a data do dia 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")

A seguir mostra o padrão classificável DateTime em XAML:

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

Por exemplo, para especificar a data do dia 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

Padrão RFC1123 ("r")

O padrão RFC1123 é útil porque ele pode ser uma entrada de cadeia de caracteres de outros geradores de data que também usam o padrão RFC1123 por motivos invariáveis de cultura. A seguir mostra o padrão RFC1123 DateTime em XAML:

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

Por exemplo, para especificar a data do dia 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 que seja aceitável como entrada para DateTime.Parse. Isso inclui outros formatos formalizados (por exemplo UniversalSortableDateTimePattern) e formatos que não são formalizados como uma forma específica DateTimeFormatInfo . 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 do trabalho e, como alternativa, recomenda o padrão de data abreviada como uma prática padrão.

Confira também