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
Mary-Kate Olsenoriginal
2024-12-08 14:54:12536parcourir

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";

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";

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);
  • 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!

Déclaration:
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