计算时间差值

219 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

计算时间差值

通常我们计算时间差值,比如时间相差小时数、天数等,都会用其除法进行操作,但是我们其实可以借助java.util包下的TimeUnit来更方便的进行实现(底层逻辑是一样的实现)

package com.caisl.ap;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;

public class TimeDiffTest {
    private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    public static void main(String[] args) throws ParseException {
        Date startDate = dateFormat.parse("2021-06-01 06:18:00");
        Date endDate = dateFormat.parse("2021-06-18 18:59:00");

        long dateDiff = endDate.getTime() - startDate.getTime();

        // 原始方法
        System.out.println("时间秒数差(除法计算):" + dateDiff / 1000);
        System.out.println("时间分钟差(除法计算):" + dateDiff / (1000 * 60));
        System.out.println("时间小时差(除法计算):" + dateDiff / (1000 * 60 * 60));
        System.out.println("时间天数差(除法计算):" + dateDiff / (1000 * 60 * 60 * 24));
        // 快捷操作
        System.out.println("时间秒数差(TimeUnit转换):" + TimeUnit.MILLISECONDS.toSeconds(dateDiff));
        System.out.println("时间分钟差(TimeUnit转换):" + TimeUnit.MILLISECONDS.toMinutes(dateDiff));
        System.out.println("时间小时差(TimeUnit转换):" + TimeUnit.MILLISECONDS.toHours(dateDiff));
        System.out.println("时间天数差(TimeUnit转换):" + TimeUnit.MILLISECONDS.toDays(dateDiff));
    }
}