Maison > développement back-end > C++ > Pourquoi DateTime.Parse () échoue avec 'String n'a pas été reconnu comme une datetime valide' et comment puis-je le réparer?

Pourquoi DateTime.Parse () échoue avec 'String n'a pas été reconnu comme une datetime valide' et comment puis-je le réparer?

Linda Hamilton
Libérer: 2025-01-27 00:41:08
original
537 Les gens l'ont consulté

Why Does DateTime.Parse() Fail with

"La chaîne n'est pas reconnue comme un format DateTime effectif DD / mm / yyyy" Analyse d'erreur

Lors de la conversion de la chaîne de format "dd / mm / yyyy" en un objet

, la "chaîne n'est pas reconnue comme une erreur de DateTime" valide ". Cette erreur signifie que le format de chaîne ne correspond pas au format spécifié par défaut

spécifié DateTime.Parse(). DateTime IFormatProvider Solution:

Méthode 1: Utilisez

La méthode est explicitement spécifiée pour spécifier le format de date requis, couvrant ainsi le format régional par défaut. Cette méthode nécessite trois paramètres: la chaîne est convertie, la chaîne de format et ParseExact().

Méthode 2: Custom DateTime.ParseExact() IFormatProvider

<code class="language-csharp">DateTime date = DateTime.ParseExact(this.Text, "dd/MM/yyyy", null);</code>
Copier après la connexion
ou, vous pouvez créer une personnalité

pour fournir le format régional requis. Cette méthode vous permet de maintenir la flexibilité de tout en suivant le format personnalisé. IFormatProvider

La différence entre IFormatProvider: DateTime.Parse()

<code class="language-csharp">// 创建一个具有所需格式的自定义提供程序
CultureInfo customCulture = new CultureInfo("en-US");
customCulture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";

// 使用自定义提供程序进行解析
DateTime date = DateTime.Parse(this.Text, customCulture);</code>
Copier après la connexion

Exprimez le format spécifié, et dépendent de la valeur par défaut Parse() (généralement la région actuelle). ParseExact() plus précis et sécurisé, car il vérifiera la chaîne en fonction du format spécifié.

    Plus flexible, permettant différents formats de dates en fonction de la nature régionale du système.
  • ParseExact() Parse() Suggestion: IFormatProvider
  • Les deux méthodes sont efficaces sur la prémisse du format de chaîne d'entrée correctement. Du point de vue de la sécurité et de la précision de type, ParseExact() est le premier choix car il applique le format spécifique. Cependant, si le format de date peut varier de la région,
  • peut être plus pratique car il s'adaptera automatiquement aux paramètres de la zone de l'utilisateur. En fin de compte, la meilleure façon dépend de besoins d'application spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal