Bug dans SimpleDateFormat ?
Bonjour à tous,
je viens de m'apercevoir qu'une fonction que j'ai écrite est "buggée" et je me demande si quelqu'un pourrait m'aider à la corriger.
Mon problème concerne les dates et plus particulièrement leur formattage.
j'ai une fonction dont voici le code :
Code:
1 2 3 4 5 6 7
|
public static String formateDateStr(String dateStr, String currentFormat, String newFormat) throws ParseException
{
DateFormat currFmt = new SimpleDateFormat(currentFormat);
DateFormat newFmt = new SimpleDateFormat(newFormat);
return newFmt.format(currFmt.parse(dateStr));
} |
Cette fonction prend en entrée une date sous forme de chaine, le format utilisé pour représenter cette chaîne, et le format résultat.
ainsi, le code suivant :
Code:
1 2 3
|
String dateStr = "200001";
System.out.println("Date = " + dateStr + ", " + formateDateStr(dateStr, "yyyyww", "ww/yyyy")); |
renvoit : Date = 200001, 01/2000
Ce qui me va très bien ! :D
Par contre, si je fais le même appel avec 200901, voici ce que j'obtiens : Date = 200901, 01/2008 8O :?
Pour avoir cherché un peu, on trouve que cela vient du fait que la première transformation transforme ma chaîne en la date Mon Dec 29 00:00:00 CET 2008, ce qui est correct, par contre, quand on la reformate, le numéro de semaine est bon, mais l'année est fausse (2008).
J'imagine que quelqu'un a déjà eu ce problème et a une solution à me donner.
D'avance merci.