dakujem vsetkym za namety a pripomienky.
Ivan
2010/3/4 Lukas Barton
> Asi nikdy neporovnavate objekty vytvorene pres konstruktor a ziskane napr.
> pomoci session.load.
>
> Zkuste napr. nasledujici kod:
>
>
>Session session=HibernateUtil.getSessionFactory().openSession();
>
>sess
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 :
> diky, toto:
>
> Date date3 = new Date(date1.getTime() - date2.getTime() +
> date1.getTimezoneOffset()*600
Jen asi mozna jeste na vysvetlenou. Trida Date vubec s casovym pasmem
nepracuje je ji to jedno. Ta se stara pouze o pocet milisekund od roku 1970.
Casova zona se ale uplatnuje v okamziku kdy datum parsujete z nejakeho
stringu pomoci SimpleDateFormat (nebo necoho podobneho) nebo naopak
formatujete d
Dobry den,
myslim ze Vas problem spociva v tom, ze se snazite naformatovat casovy
rozdil pomoci SimpleDateFormat tridy, ktera je ale navrzena na praci s
datumem v ramci casove zony (ne na praci s casem jako takovym). Tedy problem
neni vubec ve tride Date ale ve vasem formatovani casoveho rozdilu.
Pro váš případ s hodinami a minutami byste musel použít něco takového:
new
PeriodFormatterBuilder().appendHours().appendSeparator(":").appendMinutes()
S pozdravem
Filip Jirsák
2010/3/7 danisevsky
> konkretne pro tridu Period jsem v balicku org.joda.time.format nic co by
> umelo pracovat se vz
konkretne pro tridu Period jsem v balicku org.joda.time.format nic co by
umelo pracovat se vzorem "-MM-dd HH:mm:ss.S" nenasel.
Dne 7. března 2010 14:57 Filip Jirsák napsal(a):
> Použil bych třídu Period a odpovídající formátovače a parsery z balíčku
> org.joda.time.format.
>
> S pozdravem
>
Použil bych třídu Period a odpovídající formátovače a parsery z balíčku
org.joda.time.format.
S pozdravem
Filip Jirsák
2010/3/7 danisevsky
> 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. ok
diky, toto:
Date date3 = new Date(date1.getTime() - date2.getTime() +
date1.getTimezoneOffset()*6);
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, prijdo
Ani tohle nemusí v některých případech fungovat. Pořád nepočítáte jen s
časem, ale s počtem milisekund od půlnoci 1.1.1970. Pokud by se vám do
výpočtu zamotala přestupná sekunda (pravda, 22 tisíc hodin asi počítat
nebudete, ale my nevíme, pro jaký rozsah vstupních dat vám to má fungovat),
může vám
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.get
K Joda Time existuje i podpora pro Hibernate:
http://joda-time.sourceforge.net/contrib/hibernate/index.html
Záleží na tom, co ten čas znamená – pokud je to opravdu čas bez časové zóny,
pak asi LocalTime pro uložení času a pravděpodobně Period pro rozdíl časů.
S pozdravem
Filip Jirsák
2010/3/7
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 jst
12 matches
Mail list logo