problem s java.util.Date
Oto Buchta
tapik na buchtovi.cz
Pondělí Březen 8 10:01:16 CET 2010
Makube, toto trivialni cviceni jsem nechat na autorovi ;-)
Ale aspon vsichni vidi, ze udelat si neco jednoducheho rucne je
rychlejsi nez to Googlovat :-D
Akorat bych to udelal:
return (Integer.parseInt(p[0])*60+Integer.parseInt(p[1]))*60+Integer.parseInt(p[2]);
Protoze prechod na milisekundy je pak jednodussi. Uznavam ale, ze by
to mozna slo na ukor citelnosti.
Mne to sice citelne prijde, ale mozna ze ne kazdemu.
2010/3/8 Martin Kuba <makub na ics.muni.cz>:
> Souhlasím s Otou. Tyhle řetězce nevyjadřují čas od půlnoci
> dané časové zóny, ale čas od začátku závodu. Takže třídy v java.util a java.text
> jsou pro to zcela nevhodné.
>
> Vzhledem k tomu, že vhodná třída pro tenhle typ údaje je org.joda.time.Duration,
> ale ta nemá parsování, udělal bych prostě tohle:
>
> public static void main(String[] args) {
> String t1 = "00:30:10";
> String t2 = "00:40:20";
> int timeInSeconds = parseDuration(t2)-parseDuration(t1);
> System.out.println("timInSeconds = " + timeInSeconds);
> }
>
> private static int parseDuration(String t1) {
> String[] p = t1.split(":");
> return Integer.parseInt(p[0])*3600+Integer.parseInt(p[1])*60+Integer.parseInt(p[2]);
> }
>
> Makub
>
> Oto Buchta napsal(a):
>> 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 <danisevsky na 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.
>
>
> --
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Supercomputing Center Brno Martin Kuba
> Institute of Computer Science email: makub na ics.muni.cz
> Masaryk University http://www.ics.muni.cz/~makub/
> Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
> --------------------------------------------------------------
>
>
--
Oto 'tapik' Buchta, tapik na buchtovi.cz, http://tapikuv.blogspot.com
Další informace o konferenci Konference