Maison >Java >javaDidacticiel >Comment gérer le 'caractère de modèle illégal 'T'' lors de l'analyse des dates en Java ?
Analyse des chaînes de date avec un caractère illégal
Lorsque vous essayez d'analyser une chaîne de date en Java à l'aide de SimpleDateFormat, vous pouvez rencontrer l'exception "Modèle illégal caractère 'T'". Ce problème survient lorsque la chaîne de date contient un caractère « T », qui désigne la composante temporelle lorsque l'on suit la norme ISO 8601.
Cause de l'exception
Le SimpleDateFormat La classe interprète « T » comme un caractère spécial qui sépare les parties date et heure de la chaîne. Cependant, le modèle par défaut n'inclut pas « T » comme caractère, ce qui conduit à l'exception.
Solutions possibles
Il existe plusieurs façons de résoudre ce problème :
Modifier le Modèle :
Utiliser DateTimeFormatter (Java 8 ):
Exemple :
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ"); Date date = formatter.parse("2010-10-02T12:23:23Z", LocalDateTime::from);
Séparation manuelle des chaînes :
Remarque :
Si la chaîne de date contient un « Z » final pour indiquer l'heure UTC, assurez-vous que le « La partie XXX' du modèle est incluse.
Exemple de code amélioré (avec échappement 'T'):
public static void main(String[] args) { String date = "2010-10-02T12:23:23Z"; String pattern = "yyyy-MM-dd'T'hh:mm:ssXXX"; SimpleDateFormat sdf = new SimpleDateFormat(pattern); try { Date d = sdf.parse(date); System.out.println(d.getYear()); } catch (ParseException e) { e.printStackTrace(); } }
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!