Soucis avec SimpleDateFormat
Voilà j'ai un soucis avec SimpleDateFormat
Voici le corps de la méthode appelé (je n'ai mis que le passage concerné par mon problème:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| public PT_ListTourney find(Date dateFrom, Date dateTo) {
PT_ListTourney listTourney = new PT_ListTourney();
PT_Tourney tourney = null;
if (dateFrom.after(dateTo)) {
Date temp = dateTo;
dateTo = dateFrom;
dateFrom = temp;
}
Calendar calFrom = Calendar.getInstance();
Calendar calTo = Calendar.getInstance();
calFrom.setTime(dateFrom);
calTo.setTime(dateTo);
calFrom.add(Calendar.DATE, -1);
calTo.add(Calendar.DATE, 1);
SimpleDateFormat sdf = new SimpleDateFormat("dd/mm/yyyy");
dateFrom = calFrom.getTime();
dateTo = calTo.getTime();
System.out.println("dateFrom: " + dateFrom + " dateTo: " + dateTo);
String dFrom = sdf.format(dateFrom);
String dTo = sdf.format(dateTo);
dFrom = "#" + dFrom + "#";
dTo = "#" + dTo + "#";
System.out.println("dFrom: " + dFrom + " dTo: " + dTo);
try {
... }
} catch (SQLException e) {
e.printStackTrace();
}
return listTourney;
} |
et ci-dessous l'extrait du code de test de l'appel à cette méthode:
Code:
1 2 3 4 5 6 7 8 9
|
Calendar calendar = new GregorianCalendar();
Calendar calendar2 = new GregorianCalendar();
calendar.add(Calendar.DATE, -1);
Date dateFrom = calendar.getTime();
Date dateTo = calendar2.getTime();
System.out.println("dateFrom: " + dateFrom + " dateTo: " + dateTo + "\n");
ListTourney listTourney = pt_listTourneyF.find(dateFrom, dateTo);
System.out.println(listTourney + "\n"); |
Voici le résultat de l''exécution de ce code aujourd'hui:
dateFrom: Tue Apr 20 10:05:18 CEST 2010 dateTo: Wed Apr 21 10:05:18 CEST 2010
dateFrom: Mon Apr 19 10:05:18 CEST 2010 dateTo: Thu Apr 22 10:05:18 CEST 2010
dFrom: #19/05/2010# dTo: #22/05/2010#
alors que je m'attends à recevoir :
dFrom: #19/04/2010# dTo: #22/04/2010#
J'ai l'impression d'utiliser correctement les différentes API sur les dates, et je comprends donc pas pourquoi j'ai ce décalage d'un mois dans le résultat.
Dois je utiliser SimpleDateFormat autrement ? Comment ?