03. august 2007 - 13:57Der er
5 kommentarer og 1 løsning
DateFormat resulterer altid i en time for meget
Betragt følgende kode, som gerne skulle give en tekststreng, som viser "00:05:00", men som viser "01:05:00". Jeg kan ikke gennemskue, hvorfor der altid kommer den ekstra time... Kan det have noget at gøre med tidszonen - og hvordan får jeg den rette tid frem?
Calendar start = new GregorianCalendar(); Date startDate = start.getTime();
Calendar end = new GregorianCalendar(); end.add(Calendar.MINUTE, 5); Date endDate = end.getTime();
DateFormat df = DateFormat.getTimeInstance(); Date duration = new Date(endDate.getTime() - startDate.getTime()); String strDuration = df.format(duration);
Jeg er ikke helt med på hvad du mener med "en simpel formatering" men dit første forslag virkede fint. Mange tak for hjælpen. Smider du lige et svar så du kan få nogle point.
long diff = endDate.getTime() - startDate.getTime(); int h = (int) (diff / 3600000); int m = (int) ((diff - h * 360000) / 60000); int s = (int) ((diff - h * 360000 - m * 60000) / 1000); System.out.printf("%02d:%02d:%02d", h, m, s);
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.