Maison  >  Article  >  Java  >  Pourquoi ma conversion de date Java génère-t-elle un mois incorrect ?

Pourquoi ma conversion de date Java génère-t-elle un mois incorrect ?

DDD
DDDoriginal
2024-11-10 05:21:02282parcourir

Why does my Java date conversion result in an incorrect month?

Problème de conversion du format de date Java : mois incorrect lors de la conversion

En Java, lors de la conversion de dates entre différents formats, il est essentiel d'utiliser le bon spécificateurs de format pour garantir des conversions précises. Dans ce cas, le problème provient d'un spécificateur de format incorrect dans la chaîne de format de date d'entrée.

Problème :

L'extrait de code suivant tente de convertir une date du format "aaaa-mm-jj" au format "jj MMMM aaaa". Cependant, la conversion mensuelle résultante est incorrecte.

String dateStr = "2011-12-15";
String fromFormat = "yyyy-mm-dd";
String toFormat = "dd MMMM yyyy";

try {
    DateFormat fromFormatter = new SimpleDateFormat(fromFormat);
    Date date = (Date) fromFormatter.parse(dateStr);

    DateFormat toformatter = new SimpleDateFormat(toFormat);
    String result = toformatter.format(date);
} catch (ParseException e) {
    e.printStackTrace();
}

Résultat attendu :

"15 décembre 2011"

Résultat réel :

"15 janvier 2011"

Spécificateur de format incorrect :

Le problème est dû à l'utilisation de "mm" dans la chaîne de format de date d'entrée. En Java SimpleDateFormat, "mm" représente les minutes et non les mois. Pour spécifier les mois, le spécificateur de format correct est "MM".

Solution :

Pour résoudre ce problème, mettez simplement à jour la chaîne de format de date d'entrée pour utiliser "MM". pendant des mois :

String fromFormat = "yyyy-MM-dd";

Résultat correct :

Après avoir effectué cette modification, le code L'extrait produira la conversion mensuelle correcte : "15 décembre 2011".

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