Caractère de modèle illégal 'T' lors de l'analyse de la chaîne de date en java.util.Date
Analyse d'une chaîne de date en java.util. L'objet Date nécessite un modèle qui adhère à des règles spécifiques. Un modèle courant est "aaaa-MM-jjThh:mm:ssZ", qui représente les dates au format ISO 8601.
Problème :
Lors de l'utilisation du modèle spécifié, une exception est lancé avec le message "java.lang.IllegalArgumentException : caractère de modèle illégal 'T'."
Raison :
Le 'T' dans le motif représente un séparateur entre les composants de date et d'heure. Cependant, dans SimpleDateFormat de Java, le caractère « T » doit être échappé avec des guillemets simples de chaque côté pour être reconnu correctement.
Solution 1 : Échapper « T » dans le modèle
Pour résoudre le problème en utilisant le modèle d'origine, échappez le caractère « T » comme suit :
String pattern = "yyyy-MM-dd'T'hh:mm:ssZ";
Solution 2 : Utiliser ISO_8601_24H_FULL_FORMAT
Vous pouvez également utiliser la constante prédéfinie ISO_8601_24H_FULL_FORMAT fournie par le Q2597083 class:
String pattern = Q2597083.ISO_8601_24H_FULL_FORMAT;
Pour Java 8 et supérieur :
Pour Java 8 et supérieur, il est recommandé d'utiliser la classe DateTimeFormatter au lieu de SimpleDateFormat et Instant au lieu de Date. Voici un exemple :
import java.time.Instant; import java.time.format.DateTimeFormatter; String dateString = "2010-10-02T12:23:23Z"; DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME; Instant d = Instant.parse(dateString); System.out.println(d.getYear());
En utilisant ces solutions, vous pouvez analyser avec succès les chaînes de date au format ISO 8601 sans rencontrer l'exception « Caractère de modèle illégal 'T' ».
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3