Partager via


Méthode System.DateTime.TryParse

Cet article fournit des remarques supplémentaires à la documentation de référence de cette API.

La DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) méthode analyse une chaîne qui peut contenir des informations de date, d’heure et de fuseau horaire. Elle est similaire à la DateTime.Parse(String, IFormatProvider, DateTimeStyles) méthode, sauf que la DateTime.TryParse(String, DateTime) méthode ne lève pas d’exception si la conversion échoue.

Cette méthode tente d’ignorer complètement les données non reconnues et analyse la chaîne d’entrée (s). Si s elle contient une heure mais aucune date, la méthode remplace par défaut la date actuelle ou, si styles elle inclut l’indicateur NoCurrentDateDefault , elle remplace DateTime.Date.MinValue. Si s elle contient une date mais pas d’heure, 12:00 minuit est utilisée comme heure par défaut. Si une date est présente mais que son composant année se compose de deux chiffres seulement, il est converti en année dans le provider calendrier actuel du paramètre en fonction de la valeur de la Calendar.TwoDigitYearMax propriété. Les espaces blancs en début, au milieu ou en fin de s sont ignorés. La date et l’heure peuvent être entre crochets avec une paire de caractères NUMÉRO DE DÉBUT et de fin ('#', U+0023) et peuvent être suivis avec un ou plusieurs caractères NULL (U+0000).

Les formats valides spécifiques pour les éléments de date et d’heure, ainsi que les noms et les symboles utilisés dans les dates et les heures, sont définis par le provider paramètre, qui peut être l’un des éléments suivants :

Si provider est null, la culture actuelle est utilisée.

Si s est la représentation sous forme de chaîne d’un jour bissextile dans une année bissextile du calendrier actuel, la méthode analyse s avec succès. Si s est la représentation sous forme de chaîne d'un jour bissextile dans une année non bissextile du calendrier actuel de provider, l’opération d’analyse échoue et la méthode retourne false.

Le styles paramètre définit l’interprétation précise de la chaîne analysée et la façon dont l’opération d’analyse doit la gérer. Il peut s’agir d’un ou de plusieurs membres de l’énumération DateTimeStyles , comme décrit dans le tableau suivant.

Membre DateTimeStyles Descriptif
AdjustToUniversal Analyse s et, si nécessaire, le convertit en UTC. Si s inclut un décalage de fuseau horaire, ou s’il s ne contient aucune information de fuseau horaire, mais styles inclut l’indicateur DateTimeStyles.AssumeLocal , la méthode analyse la chaîne, appelle ToUniversalTime pour convertir la valeur retournée DateTime en UTC et définit la Kind propriété DateTimeKind.Utcsur . Si s elle indique qu’elle représente UTC, ou si s elle ne contient pas d’informations de fuseau horaire, mais styles inclut l’indicateur DateTimeStyles.AssumeUniversal , la méthode analyse la chaîne, n’effectue aucune conversion de fuseau horaire sur la valeur retournée DateTime et définit la Kind propriété DateTimeKind.Utcsur . Dans tous les autres cas, l’indicateur n’a aucun effet.
AllowInnerWhite Bien que valide, cette valeur est ignorée. L’espace blanc interne est autorisé dans les éléments de date et d’heure de s.
AllowLeadingWhite Bien que valide, cette valeur est ignorée. L’espace blanc de début est autorisé dans les éléments de date et d’heure de s.
AllowTrailingWhite Bien que valide, cette valeur est ignorée. Les espaces blancs à la fin sont autorisés dans les éléments de date et d'heure de s.
AllowWhiteSpaces Spécifie qui s peut contenir des espaces blancs de début, interne et de fin. Il s’agit du comportement par défaut. Il ne peut pas être substitué en fournissant une valeur d’énumération plus restrictive DateTimeStyles telle que DateTimeStyles.None.
AssumeLocal Spécifie que si s ne contient pas d'informations de fuseau horaire, il est supposé représenter une heure locale. Sauf si l’indicateur DateTimeStyles.AdjustToUniversal est présent, la propriété Kind de la valeur retournée DateTime est définie sur DateTimeKind.Local.
AssumeUniversal Spécifie que si s manque d'informations sur le fuseau horaire, il est supposé représenter l'heure UTC. Sauf si l’indicateur DateTimeStyles.AdjustToUniversal est présent, la méthode convertit la valeur retournée DateTime de UTC en heure locale et définit sa propriété Kind sur DateTimeKind.Local.
None Bien que valide, cette valeur est ignorée.
RoundtripKind Pour les chaînes qui contiennent des informations de fuseau horaire, tente d’empêcher la conversion d’une chaîne de date et d’heure en valeur DateTime avec sa Kind propriété définie sur DateTimeKind.Local. En règle générale, une telle chaîne est créée en appelant la DateTime.ToString(String) méthode à l’aide des spécificateurs de format standard « o », « r » ou « u ».

Si s ne contient aucune information de fuseau horaire, la méthode DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) retourne une valeur DateTime dont la propriété Kind est DateTimeKind.Unspecified sauf indication contraire d'un drapeau styles. Si s inclut des informations de fuseau horaire ou de décalage de fuseau horaire, la méthode DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) effectue toute conversion de temps nécessaire et retourne l’une des opérations suivantes :

Ce comportement peut être remplacé à l’aide de l’indicateur DateTimeStyles.RoundtripKind .

Analyser des cultures personnalisées

Si vous analysez une chaîne de date et d’heure générée pour une culture personnalisée, utilisez la TryParseExact méthode au lieu de la TryParse méthode pour améliorer la probabilité que l’opération d’analyse réussisse. Une chaîne de date et d’heure de culture personnalisée peut être complexe et difficile à analyser. La TryParse méthode tente d’analyser une chaîne avec plusieurs modèles d’analyse implicites, qui peuvent échouer. En revanche, la TryParseExact méthode vous oblige à désigner explicitement un ou plusieurs modèles d’analyse exacts susceptibles de réussir.

Pour plus d’informations sur les cultures personnalisées, consultez la System.Globalization.CultureAndRegionInfoBuilder classe.