Jen asi mozna jeste na vysvetlenou. Trida Date vubec s casovym pasmem nepracuje je ji to jedno. Ta se stara pouze o pocet milisekund od roku 1970. Casova zona se ale uplatnuje v okamziku kdy datum parsujete z nejakeho stringu pomoci SimpleDateFormat (nebo necoho podobneho) nebo naopak formatujete datum do Stringu. Je to prave pro to, ze jsou to tridy pro praci s datumem jak nazev napovida, nikoli obecne tridy na praci s casem coz by jste potreboval Vy.
Pavel 2010/3/7 Pavel Savara <[email protected]> > Dobry den, > myslim ze Vas problem spociva v tom, ze se snazite naformatovat casovy > rozdil pomoci SimpleDateFormat tridy, ktera je ale navrzena na praci s > datumem v ramci casove zony (ne na praci s casem jako takovym). Tedy problem > neni vubec ve tride Date ale ve vasem formatovani casoveho rozdilu. > > Pouzil bych neco takoveho. Urcite by Vas napadl i elegantnejsi algoritmus, > ale na demonstraci to staci: > > public static void main(String[] args) throws ParseException { > // TODO code application logic here > SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss"); > Date date1 = format.parse("00:40:20"); > Date date2 = format.parse("00:30:10"); > > long period = date1.getTime() - date2.getTime(); > long h = period/(1000*60*60); > long rest = period%(1000*60*60); > long m = rest/(1000*60); > rest = rest%(1000*60); > long s = rest/(1000); > long milis = rest%(1000); > System.out.println(h+":"+m+":"+s+"."+milis); > > } > > Hezky den > Pavel Savara > > 2010/3/6 danisevsky <[email protected]> > > ahoj, mohl by mi prosim nekdo vysvetlit tuto metodu: >> >> public static void main(String[] args) throws ParseException { >> SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss"); >> Date date1 = format.parse("00:40:20"); >> Date date2 = format.parse("00:30:10"); >> Date date3 = new Date(date1.getTime() - date2.getTime()); >> System.out.println(format.format(date3)); >> } >> >> vystup je: 01:10:10 >> >> proc to neni 00:10:10? kde se vzala ta hodina? >> moc diky >> >> >> >
