Maison >Java >javaDidacticiel >Pourquoi l'analyse '2010-10-02T12:23:23Z' renvoie-t-elle 'Caractère de modèle illégal 'T'' dans l'API de date de Java ?

Pourquoi l'analyse '2010-10-02T12:23:23Z' renvoie-t-elle 'Caractère de modèle illégal 'T'' dans l'API de date de Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-08 20:58:18619parcourir

Why Does Parsing

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

Question :

Lorsque vous essayez d'analyser une chaîne de date comme "2010-10-02T12:23:23Z" à l'aide de l'API Java Date, une exception est levée : "java.lang.IllegalArgumentException : caractère de modèle illégal 'T'". Pourquoi cela se produit-il et est-il nécessaire de diviser et d'analyser manuellement la chaîne ?

Réponse :

Le caractère « T » dans la chaîne, qui représente l'heure séparateur, est la cause du problème. Pour résoudre ce problème, il est nécessaire d'échapper le caractère 'T' avec des guillemets simples ('') dans la chaîne de modèle. Le modèle correct doit être "aaaa-MM-jj'T'hh:mm:ssZ".

Exemple :

String date = "2010-10-02T12:23:23Z";
String pattern = "yyyy-MM-dd'T'hh:mm:ssZ";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
try {
    Date d = sdf.parse(date);
    System.out.println(d.getYear());
} catch (ParseException e) {
    e.printStackTrace();
}

Alternativement, pour Java 8 et supérieur, il est recommandé de utilisez plutôt Instant.parse, qui fournit une approche plus robuste et moderne de l'analyse des dates.

Instant.parse("2015-04-28T14:23:38.521Z")

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