Bonjour,
je souhaiterai convertir un String comme '2011-07-08 03:48:45' dans un format où je puisse faire la différence entre 2 dates pour avoir la durée.
Savez-vous comment faire ?
Merci.
Bonne soirée.
Bonjour,
je souhaiterai convertir un String comme '2011-07-08 03:48:45' dans un format où je puisse faire la différence entre 2 dates pour avoir la durée.
Savez-vous comment faire ?
Merci.
Bonne soirée.
Bonjour,
http://docs.oracle.com/javase/6/docs...ateFormat.html
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 String s = "2011-07-08 03:48:45"; SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy hh:mi:ss"); Date d = sdf.parse(s);
Attention il y a un piège dans le code donné par Dismantle, le format de la date dans le construteur de SimpleDateFormat ne correspond pas à celui que tu souhaites. Mais je pense que tu pourras corriger tout seul en regardant la doc![]()
Merci pour la réponse. Ça à l'air de fonctionner.
Par contre pour la soustraction j'ai été obligé de faire :
Je récupère une valeur mais comment la transformer en date ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part duree = dateFin2.getTime() - dateDebut2.getTime();
?
La différence entre deux dates, ce n'est pas une date, c'est une durée.
En l'occurrence, là tu récupères la durée en millisecondes.
Si tu la veux en secondes, tu divises par mille. Si tu la veux en minutes, tu redivises par soixante. Et ainsi de suite.
Si tu la veux en jours, semaines, mois ou ce genre de trucs, il va falloir donner des exemples : jours calendaires ou 24 heures glissantes ?
J'ai ça chez moi dans une classe util
N'oublie pas de tester si les dates ne sont pas null et que la fin soit supérieur au début.
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
33
34
35
36
37
38
39
40
41 public static String getElapsedTime(Date startDate, Date endDate) { StringBuilder dateDiff = new StringBuilder(); boolean hasPrev = false; int diffMilliSec = (int)(endDate.getTime() - startDate.getTime()) ; int diffSeconds = diffMilliSec / 1000; int diffDays = diffSeconds / (24 * 60 * 60); if ( diffDays > 0 ) { dateDiff.append(diffDays + " Jours"); hasPrev = true; } int diffHours = (diffSeconds / (60 * 60)) % 24; if ( diffHours > 0 || hasPrev ) { dateDiff.append(" " + diffHours + "h"); hasPrev = true; } int diffMinutes = (diffSeconds / 60) % 60; if ( diffMinutes > 0 || hasPrev ) { dateDiff.append(" " + diffMinutes + "m"); hasPrev = true; } diffSeconds = diffSeconds % 60; if ( diffSeconds > 0 || hasPrev ) { dateDiff.append(" " + diffSeconds + "s"); hasPrev = true; } return dateDiff.toString(); }
A+.
J'ai finalement fais :
Ça à l'air de bien fonctionner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 duree = ( dateFin2.getTime() - dateDebut2.getTime() ) / 1000; int heure = (int) (duree / 3600); int heureReste = (int) (duree % 3600); int minute = heureReste / 60; int seconde = heureReste % 60;
Partager