diky, toto: Date date3 = new Date(date1.getTime() - date2.getTime() + date1.getTimezoneOffset()*60000);
funguje, ale metoda getTimezoneOffset() je deprecated a navic jsem k java.util.Date ztratil duveru, protoze teto tride a jeji praci s casem vubec nerozumim. Muj pozadavek je jednoduchy, prijdou mi dva Stringy predstavujici cas ve tvaru "HH:mm:ss" a znamenaji: 1. string = doba za kterou auto ujelo 1. okruh 2. string = doba za kterou auto ulejo 1. okruh + 2. okruh ja potrebuji cisty cas za ktery auto ujelo 2. okruh. Ted koukam na joda time a taky tam nemuzu najit tridu, se kterou by to slo snadno udelat. Chci aby vsechny casy mely stejny typ (nevim zda pouzit LocalTime, Period, Duration, nebo neco jineho) a aby umely pracovat s formatovacem: - vytvorit instanci zadanim formatovace a stringu predstavujiciho cas - moznost vratit cas jako string ve formatu zadanym formatovacem 2010/3/7 <[email protected]> > tohle by mělo fungovat všude na světě: > > 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() + date > 1.getTimezoneOffset()*60000); > System.out.println(format.format(date3)); > } > > > ------------ Původní zpráva ------------ > Od: danisevsky <[email protected]> > Předmět: Re: problem s java.util.Date > Datum: 07.3.2010 13:32:53 > --------------------------------------------- > diky za vysvetleni. Nevim zda pro moje ucely neni Joda Time > zbytecne, potrebuji pouze ulozit do db dva casy a jejich rozdil. > Mimochodem jaka trida by se na to z Joda Time hodila, LocalTime? > Navic pouzivam hibernate a tam neni s mapovanim java.util.Date zadna > prace. > > nastaveni Locale.ROOT, pokud jste to myslel takto: > > public static void main(String[] args) throws ParseException { > SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss", > Locale.ROOT); > 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)); > } > > nepomohlo, porad je vystup o hodinu vic. > > > > 2010/3/6 Ondra Medek <[email protected](mailto:[email protected])> > " Nebo nastavte pro SimpleDateFormat Locale.ROOT. > > 2010/3/6 Filip Jirsák <[email protected] > (mailto:[email protected])>: > > > > > > Dobrý večer, > > vzala se tam takto: date3 je 1. ledna 1970 0:10:10 GMT (610 sekund > po > > 1.1.1970 0:00:00 GMT), vy si to necháte vypsat pomocí > SimpleDateFormat v > > aktuálním časovém pásmu (CET), které je o hodinu posunuté vůči > GMT, takže > > date3 v něm znamená 1. ledna 1970 1:10:10 CET. Z toho si necháte > vypsat > > jenom čas (bez časové zóny, což vás mate). > > > > java.util.Date pro takovéto použití není vůbec vhodný. Pokud > chcete provádět > > takovéto výpočty s časem, použijte třeba knihovnu Joda Time. > > > > S pozdravem > > > > Filip Jirsák > > > > > > Dne 6. března 2010 18:54 danisevsky <[email protected] > (mailto:[email protected])> napsal(a): > >> > >> 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)); > > > > > > > > -- > Ondra Medek > " > >
