Partager via


Syntaxe DateTime XAML

Certains contrôles, tels que Calendar et DatePicker, ont des propriétés qui utilisent le type DateTime. Bien que vous spécifiiez généralement une date ou une heure initiale pour ces contrôles dans le code-behind au moment de l’exécution, vous pouvez spécifier une date ou une heure initiale en XAML. L’analyseur XAML WPF gère l’analyse des valeurs DateTime à l’aide d’une syntaxe de texte XAML intégrée. Cette rubrique décrit les spécificités de la syntaxe de texte XAML DateTime.

Quand utiliser la syntaxe XAML DateTime

La définition de dates en XAML n’est pas toujours nécessaire et peut même ne pas être souhaitable. Par exemple, vous pouvez utiliser la propriété DateTime.Now pour initialiser une date au moment de l’exécution, ou vous pouvez effectuer tous vos ajustements de date pour un calendrier dans le code-behind en fonction de l’entrée utilisateur. Toutefois, il existe des scénarios où vous souhaiterez peut-être coder en dur des dates dans un Calendar et DatePicker dans un modèle de contrôle. La syntaxe XAML DateTime doit être utilisée pour ces scénarios.

La syntaxe XAML DateTime est un comportement natif

DateTime est une classe définie dans les bibliothèques de classes de base du CLR. En raison de la façon dont les bibliothèques de classes de base se rapportent au reste du CLR, il n’est pas possible d’appliquer TypeConverterAttribute à la classe et d’utiliser un convertisseur de type pour traiter des chaînes de XAML et de les convertir en DateTime dans le modèle objet d’exécution. Il n’existe aucune classe DateTimeConverter qui fournit le comportement de conversion ; le comportement de conversion décrit dans cette rubrique est natif de l’analyseur XAML WPF.

Mise en forme des chaînes de DateTime pour la syntaxe XAML

Vous pouvez spécifier le format d’un DateTime avec une chaîne de format. Les chaînes de format formalisent la syntaxe de texte qui peut être utilisée pour créer une valeur. Les valeurs de DateTime pour les contrôles WPF existants utilisent généralement que les composants de date de DateTime et non les composants d’heure.

Lorsque vous spécifiez une DateTime en XAML, vous pouvez utiliser l’une des chaînes de format de manière interchangeable.

Vous pouvez également utiliser des formats et des chaînes de format qui ne sont pas spécifiquement affichées dans cette rubrique. Techniquement, le code XAML pour n’importe quelle valeur de DateTime spécifiée, puis analysée par l’analyseur XAML WPF utilise un appel interne à DateTime.Parse. Par conséquent, vous pouvez utiliser n’importe quelle chaîne acceptée par DateTime.Parse pour votre entrée XAML. Pour plus d’informations, consultez DateTime.Parse.

Important

La syntaxe XAML DateTime utilise toujours en-us comme CultureInfo pour sa conversion native. Cela n’est pas influencé par la valeur de Language ou la valeur de xml:lang dans le XAML, car la conversion de type au niveau de l’attribut XAML agit indépendamment de ce contexte. N’essayez pas d’interpoler les chaînes de format affichées ici en raison de variations culturelles, telles que l’ordre dans lequel le jour et le mois s’affichent. Les chaînes de format indiquées ici sont les chaînes de format exactes utilisées lors de l’analyse du code XAML, quels que soient les autres paramètres de culture.

Les sections suivantes décrivent certaines des chaînes de format DateTime courantes.

Modèle de date courte (« d »)

Voici le format de date court pour un DateTime en XAML :

M/d/YYYY

Il s’agit du formulaire le plus simple qui spécifie toutes les informations nécessaires pour les utilisations classiques par les contrôles WPF et qui ne peut pas être influencé par des décalages de fuseau horaire accidentels par rapport à un composant de temps, et est donc recommandé sur les autres formats.

Par exemple, pour spécifier la date du 1er juin 2010, utilisez la chaîne suivante :

3/1/2010

Pour plus d’informations, consultez DateTimeFormatInfo.ShortDatePattern.

Modèle de Date et Heure Triable (« s »)

Les éléments suivants illustrent le modèle DateTime triable en XAML :

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

Par exemple, pour spécifier la date du 1er juin 2010, utilisez la chaîne suivante (les composants d’heure sont tous entrés comme 0) :

2010-06-01T000:00:00

modèle RFC1123 (« r »)

Le modèle RFC1123 est utile, car il peut s’agir d’une entrée de chaîne à partir d’autres générateurs de dates qui utilisent également le modèle RFC1123 pour des raisons invariantes de culture. Voici le modèle RFC1123 DateTime en XAML :

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

Par exemple, pour spécifier la date du 1er juin 2010, utilisez la chaîne suivante (les composants d’heure sont tous entrés comme 0) :

Mon, 01 Jun 2010 00:00:00 UTC

Autres formats et modèles

Comme indiqué précédemment, une DateTime en XAML peut être spécifiée en tant que chaîne acceptable comme entrée pour DateTime.Parse. Cela inclut d’autres formats formalisés (par exemple UniversalSortableDateTimePattern) et des formats qui ne sont pas formalisés comme un formulaire DateTimeFormatInfo particulier. Par exemple, le formulaire YYYY/mm/dd est acceptable comme entrée pour DateTime.Parse. Cette rubrique ne tente pas de décrire tous les formats possibles qui fonctionnent et recommande plutôt le format de date courte comme pratique standard.

Voir aussi