Maison > Java > javaDidacticiel > Pourquoi l'analyse d'une chaîne de date avec 'T' en Java génère-t-elle une exception 'Caractère de modèle illégal 'T'' ?

Pourquoi l'analyse d'une chaîne de date avec 'T' en Java génère-t-elle une exception 'Caractère de modèle illégal 'T'' ?

Mary-Kate Olsen
Libérer: 2024-12-08 14:54:12
original
544 Les gens l'ont consulté

Why Does Parsing a Date String with

Caractère de modèle illégal « T » lors de l'analyse de la chaîne de date en java.util.Date

Lors de la tentative d'analyse d'une chaîne de date selon un standard date à l'aide de l'API Java Date, vous pouvez rencontrer une exception avec le message suivant : "Caractère de modèle illégal 'T'". Cette erreur se produit car le modèle spécifié pour l'analyse inclut le caractère "T", qui n'est pas reconnu comme un caractère de modèle valide.

Cause :

Le "T" Le caractère dans la chaîne de date représente le séparateur d'heure entre les composants de date et d'heure. Toutefois, le modèle SimpleDateFormat par défaut n’inclut pas ce caractère. En conséquence, l'analyseur l'interprète comme un caractère de modèle illégal.

Solution :

Pour résoudre ce problème, il existe deux approches principales :

1. Modèle personnalisé :

Vous pouvez spécifier un modèle personnalisé qui inclut le caractère « T » comme séparateur de temps. Par exemple :

String pattern = "yyyy-MM-dd'T'HH:mm:ssZ";
Copier après la connexion

2. Échapper aux guillemets simples :

Vous pouvez également échapper au caractère "T" à l'aide de guillemets simples. De cette façon, il sera traité comme un caractère littéral plutôt que comme un caractère de modèle.

String pattern = "yyyy-MM-dd'T'hh:mm:ssZ";
Copier après la connexion

Notes supplémentaires :

  • En Java 8 et supérieur, vous pouvez utiliser la classe DateTimeFormatter pour analyser les chaînes de date de manière plus flexible et plus concise. Par exemple :
String input = "2010-10-02T12:23:23Z";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");
LocalDateTime dateTime = LocalDateTime.parse(input, formatter);
Copier après la connexion
  • N'oubliez pas de définir le fuseau horaire sur UTC ou le fuseau horaire approprié lors de l'analyse de la chaîne de date.

Application de l'une de ces méthodes devrait vous permettre d'analyser avec succès les chaînes de date avec le caractère "T" comme séparateur d'heure.

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