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
> "
>
>

Odpovedet emailem