Maison  >  Article  >  Java  >  Pourquoi SimpleDateFormat affiche-t-il incorrectement les mois lors de la conversion des dates ?

Pourquoi SimpleDateFormat affiche-t-il incorrectement les mois lors de la conversion des dates ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-24 08:04:02409parcourir

Why Is SimpleDateFormat Incorrectly Displaying Months When Converting Dates?

Java SimpleDateFormat présente de manière erronée les mois

Lors de la conversion des dates d'Active Directory vers Java, SimpleDateFormat affiche systématiquement toutes les dates de janvier, malgré une identification correcte jours et années. En examinant le code fourni, le problème réside dans le modèle de formatage :

<code class="java">SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/DD");</code>

La chaîne de modèle "aaaa/MM/JJ" signifie un format année/mois/jour. Cependant, la valeur de date d'Active Directory est au format année/mois/jour, le jour n'étant pas en majuscule. Pour remédier à cela, le modèle doit être modifié comme suit :

<code class="java">SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");</code>

En utilisant un "d" minuscule pour le jour au lieu de "DD", la date sera correctement analysée à partir des données Active Directory. Le code mis à jour ressemblerait à :

<code class="java">private Date getParsedDate(String givenString) {
    System.out.println("Value from AD is: " + givenString);
    Date parsedDate = null;
    String formattedString = this.formatDateString(givenString);
    System.out.println("Formatted String is: " + formattedString);
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
    try {
        parsedDate = sdf.parse(formattedString);
        System.out.println("Final date string is: " + parsedDate.toString());
    } catch (ParseException ex) {
        ex.printStackTrace();
    }
    return parsedDate;
}</code>

Avec cet ajustement, le mois sera désormais extrait avec précision de la chaîne de date Active Directory.

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