[ Andreja Dulovic @ 27.05.2007. 22:42 ] @
problem: imam dva "timestampa", i treba mi interval vremena izmedju njih. vremena su u string formatu. prebacim ih u instance Date klase, zatim svako od ta dva vremena predstavim kao Long broj (broj milisekundi od 01/01/1970) i oduzmem manji od veceg. tako dobijen long (razliku dva vremena) zelim da predstavim kao novu instancu Date-a. medjutim, ne dobijam validan rezultat. Code: String d1 = "05/23/2007 13:01:06.616"; String d2 = "05/23/2007 13:05:21.837"; String dateFormat1 = "MM/dd/yyyy HH:mm:ss.SSS"; String dateFormat2 = "HH:mm:ss.SSS"; SimpleDateFormat df = new SimpleDateFormat(dateFormat1); try { Date date1 = df.parse(d1); Date date2 = df.parse(d2); pt("date1: "+df.format(date1)+" (long: "+date1.getTime()+")"); pt("date2: "+df.format(date2)+" (long: "+date1.getTime()+")"); long dd = date2.getTime() - date1.getTime(); Date date3 = new Date(dd); df = new SimpleDateFormat(dateFormat2); pt("date3: "+df.format(date3)+" (long: "+date3.getTime()+")"); } catch (ParseException exc) { // TODO Auto-generated catch block exc.printStackTrace(); } kao rezultat izvrsavanja ovog koda dobija se: Code: date1: 05/23/2007 13:01:06.616 (long: 1179918066616) date2: 05/23/2007 13:05:21.837 (long: 1179918066616) date3: 01:04:15.221 (long: 255221) dakle, razlika ova dva vremena bi trebalo da bude: 00:04:15.221 a ne: 01:04:15.221 kao sto je ispisano. odakle se stvorio ovaj jedan sat viska? |