problem s java.util.Date
danisevsky
danisevsky na gmail.com
Neděle Březen 7 14:48:21 CET 2010
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 <nhac na 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 <danisevsky na 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 <xmedeko na gmail.com(mailto:xmedeko na gmail.com)>
> " Nebo nastavte pro SimpleDateFormat Locale.ROOT.
>
> 2010/3/6 Filip Jirsák <filip.jirsak na gmail.com
> (mailto:filip.jirsak na 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 <danisevsky na gmail.com
> (mailto:danisevsky na 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
> "
>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://amaio.cz/pipermail/konference/attachments/20100307/c809df6e/attachment.htm>
Další informace o konferenci Konference