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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)); }
ainsi, le code suivant :
renvoit : Date = 200001, 01/2000
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 String dateStr = "200001"; System.out.println("Date = " + dateStr + ", " + formateDateStr(dateStr, "yyyyww", "ww/yyyy"));
Ce qui me va très bien !
Par contre, si je fais le même appel avec 200901, voici ce que j'obtiens : Date = 200901, 01/2008
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.
Partager