Java SimpleDateFormat se trompe systématiquement de mois en janvier
Lorsque les développeurs travaillent avec des valeurs de date provenant de diverses sources, ils peuvent rencontrer des cas où la classe Java SimpleDateFormat interprète incorrectement la partie mois de la date. Ce problème peut se manifester lors de la transformation de dates Active Directory (AD) en dates Java.
L'extrait de code fourni utilise SimpleDateFormat pour analyser les valeurs de date AD en objets Java Date :
<code class="java">SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/DD");</code>
Cependant, le modèle de format de date fourni (« aaaa/MM/JJ ») suppose un « M » majuscule pour la désignation du mois. Cela entre en conflit avec le « M » minuscule utilisé dans les valeurs de date AD, ce qui entraîne une interprétation incorrecte du mois comme janvier pour chaque date analysée.
Résoudre le problème
Pour résoudre cette divergence, le code doit utiliser le modèle de format correct pour les dates AD, qui utilise un « m » minuscule pour la désignation du mois. De plus, le séparateur de date doit être conforme aux normes AD. Par conséquent, le modèle de format révisé devrait être :
<code class="java">SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");</code>
Avec cet ajustement, SimpleDateFormat analysera correctement les valeurs de date AD, résolvant le problème de confondre systématiquement le mois avec janvier et garantissant des transformations de date précises.
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!