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:
et ci-dessous l'extrait du code de test de l'appel à cette méthode:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Voici le résultat de l''exécution de ce code aujourd'hui:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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");
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 ?
Partager