Bonjour à tous,
Après avoir parcouru le net et le forum, je vois que le problème de "décalage-d'heure-dans-la-date-en-raison-de-la-locale-ou-de-la-TimeZone" a déja été traité mais je n'ai cependant pas trouvé de réponse satisfaisante à mon problème pourtant simple.
Voila le truc : je récupère une chaine de caractères contenant un nombre de secondes et l'afficher sous la forme "hh:mm:ss". Donc en bon programmeurs Java que je suis je code
1 2 3
| DateFormat df = new SimpleDateFormat("hh:mm:ss");
Date d = new Date(seconds * 1000);
System.out.println(df.format(d)); |
et à l'affichage, j'obtiens donc une heure en trop.
La solution de facilité serait de faire
Date d = new Date((seconds * 1000) - 3600000);
mais j'aimerais éviter cette solution pour faciliter la maintenance du code par la suite.
J'ai déja essayé de changer le TimeZone de mon objet DateFormat sans succès. J'ai également essayé de passer par un objet Calendar
1 2 3 4
| Calendar c = Calendar.getInstance();
c.clear();
seconds = lineContent.substring(11, 17);
c.setTimeInMillis(Integer.valueOf(seconds) * 1000); |
sans plus de réussite. J'aimerais vos suggestions
Partager