No nevím. Podle mého je nejjednodušší cestou vlastní triviální parser, který ze stringů udělá milisekundy. Pomocí String.split(), Integer.parseInt() a operace násobení.
2010/3/7 danisevsky <danisev...@gmail.com>: > 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 <n...@email.cz> >> >> 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 <danisev...@gmail.com> >> 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 <xmed...@gmail.com(mailto:xmed...@gmail.com)> >> " Nebo nastavte pro SimpleDateFormat Locale.ROOT. >> >> 2010/3/6 Filip Jirsák <filip.jir...@gmail.com >> (mailto:filip.jir...@gmail.com)>: >> >> >> >> >> > 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 <danisev...@gmail.com >> (mailto:danisev...@gmail.com)> 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 >> " >> > > -- Oto 'tapik' Buchta, ta...@buchtovi.cz, http://tapikuv.blogspot.com