4

私が持っている: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秒になります。なぜそれが起こるのですか?これをどうする?

4

2 に答える 2

3

あなたがしていることはnew Date("difference between two dates")、01.01.1970で時間を取得することです。しかし、あなたのロケールでは、01.01.1970でどのタイムゾーンオフセットが有効でしたか?+02時間だと思います。

また、結果を印刷してnew Date(0L)、違いを比較する必要があります。または、日付を表示するときにタイムゾーンがUTCに設定されていることを確認してください。

于 2013-03-25T02:11:17.030 に答える
0

あなたがそこで何をしたかはわかりませんが、正しい結果が得られます。

http://ideone.com/dTbugh

    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

于 2013-03-25T01:36:11.100 に答える