Dans ce cas, il faut bricoler un peu.
Les DateFormat servent à parser une Date, avec une année, un mois, un jour, et éventuellement heure minute seconde. Une Date, quoi.
Et quand on veut une durée ? Ben avec Java de base il y a rien. Une idée serait de se baser sur Joda-Time. Sinon, on peut s'en sortir avec Date et SimpleDateFormat, mais c'est du bricolage.
#1 : Si un DateFormat ne lit aucune information d'année, jour ou mois, (et donc seulement l'heure dans la journée,) il considérera que c'est le 1er janvier 1970.
#2 : Date.getTime() indique le nombre de millisecondes séparant la Date du 1er Janvier 1970 à minuit, GMT.
#3 : Sauf indication contraire, un DateFormat utilise la time zone par défaut de l'utilisateur, donc chez nous Europe/Paris, soit un décalage d'une ou deux heures avec GMT, suivant l'heure d'été ou d'hiver.
Conclusion : on a presque tout ce qu'on veut, sauf que d'un côté on est en GMT et de l'autre côté à l'heure de Paris.
=> Il faut indiquer au DateFormat qu'il doit utiliser la time zone GMT :
g.setTimeZone(TimeZone.getTimeZone("GMT"));
Après, une fois la Date parsée, il suffit d'appeler getTime() pour connaître le nombre de millisecondes qu'elle représente :
System.out.println(f.getTime()/1000);
Partager