时差 - 奇怪的结果

tob*_*obi 4 java time date

我有非常简单的代码,可以计算两次之间的差异:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;

public class JavaApplication8 {
    private static final SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mm:ss.SSS");

    public static void main(String[] args) throws InterruptedException {
        Date start = GregorianCalendar.getInstance().getTime();
        Thread.sleep(100);
        Date end   = GregorianCalendar.getInstance().getTime();

        long diff = end.getTime() - start.getTime();
        System.out.println(timeFormat.format(diff));
    }
}
Run Code Online (Sandbox Code Playgroud)

但它打印01:00:00.100而不是00:00:00.100,为什么?

Sel*_*raj 5

解决这个问题的其他方法.实际上你所拥有的时间差异不是当前时间的毫秒数.它只是时间差异,所以做一个简单的划分你可以有几个小时:分钟:秒.它的速度非常快.

Date start = GregorianCalendar.getInstance().getTime();
        Thread.sleep(100);
        Date end = GregorianCalendar.getInstance().getTime();

        long longVal = end.getTime() - start.getTime();

        long hours = longVal / 3600000;
        long mins = (longVal % 3600) / 60000;
        long secs = longVal % 60000;

        System.out.println(hours + " " + mins + " " + secs);
Run Code Online (Sandbox Code Playgroud)