Maison >Java >javaDidacticiel >Pourquoi mon Java SimpleDateFormat analyse-t-il « mm » en minutes au lieu de mois, et comment puis-je y remédier ?
Ambigüité d'analyse de SimpleDateFormat résolue
La classe SimpleDateFormat est utilisée pour analyser les dates en Java. Cependant, des erreurs occasionnelles peuvent survenir en raison de ses règles d'analyse strictes. Un problème courant est l'interprétation erronée des spécifications des mois et des minutes.
Dans un cas récent, un développeur a rencontré un problème où le code :
SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss"); String str = "2010-06-13T00:00:00"; Date date = sf.parse(str);
analysait la date comme "mercredi 13 janvier 00 :00:00 EST 2010" au lieu du "mercredi 13 juin 00:00:00 EST" attendu. 2010."
Résolution
Le problème réside dans la chaîne de format de date. Dans le format fourni, « mm » représente les minutes, tandis que « MM » représente les mois. Pour corriger cela, le développeur devait simplement changer la chaîne de format en :
"yyyy-MM-dd'T'HH:mm:ss"
Cela garantit que "MM" est utilisé pour le mois, et le code analysera désormais correctement la date comme "Mercredi 13 juin 00". :00:00 EST 2010."
Il est crucial de prêter attention aux spécificateurs de format détaillés fournis dans la documentation SimpleDateFormat pour éviter de tels erreurs d'analyse.
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!