私が持っている:startDate = 24.03.2013 21:01:20 endDate = 24.03.2013 21:01:40
私は自分のコードで行います
Date d = new Date(endDate.getTime()-startDate.getTime)
およびd=01.01.1970 02:00:20
2時間かかる場合、間隔は20秒になるはずですが、2時間20秒になります。なぜそれが起こるのですか?これをどうする?
私が持っている:startDate = 24.03.2013 21:01:20 endDate = 24.03.2013 21:01:40
私は自分のコードで行います
Date d = new Date(endDate.getTime()-startDate.getTime)
およびd=01.01.1970 02:00:20
2時間かかる場合、間隔は20秒になるはずですが、2時間20秒になります。なぜそれが起こるのですか?これをどうする?
あなたがしていることはnew Date("difference between two dates")
、01.01.1970で時間を取得することです。しかし、あなたのロケールでは、01.01.1970でどのタイムゾーンオフセットが有効でしたか?+02時間だと思います。
また、結果を印刷してnew Date(0L)
、違いを比較する必要があります。または、日付を表示するときにタイムゾーンがUTCに設定されていることを確認してください。
あなたがそこで何をしたかはわかりませんが、正しい結果が得られます。
DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
Date startDate = df.parse("24.03.2013 21:01:20");
Date endDate = df.parse("24.03.2013 21:01:40");
Date d = new Date(endDate.getTime()-startDate.getTime());
System.out.print(d);
出力:Thu Jan 01 00:00:20 GMT 1970