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 ?
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!