Java 时间间隔推算

计算两个日期之间的间隔时间

LocalDateTime 和 Date 的应用

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.Temporal;

/**
 * 时间间隔推算 * * @author cst
 */
public class MyDateTest {
    public static void main(String[] args) {
        String begin = "2021-09-01 15:00:00";
        String end = "2021-09-03 16:00:00";
        System.out.println("起始时间: " + begin);
        System.out.println("结束时间: " + end);
        System.out.println("间隔时间A= " + betweenTime(begin, end) + "小时");
        System.out.println("间隔时间B= " + durationTime(begin, end) + "小时");
        System.out.println("距离返校还有 " + betweenTime(end) + "小时");
    }

    /**
     * 计算两个日期的 间隔时间 * LocalDateTime方式 * @param begin 开始时间 * @param end 结束时间 * @return long 小时
     */
    public static long durationTime(String begin, String end) {
        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        Temporal beginTime = LocalDateTime.parse(begin, df);
        Temporal endTime = LocalDateTime.parse(end, df);
        Duration between = Duration.between(beginTime, endTime);
        return between.toHours();
    }

    /**
     * 计算两个日期的 间隔时间 * @param begin 开始时间 * @param end 结束时间 * @return long 小时
     */
    public static long betweenTime(String begin, String end) {
        long result = 0;
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            result = (sdf.parse(end).getTime() - sdf.parse(begin).getTime()) / 1000 / 60 / 60;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 计算距离目标时间还有多久 * LocalDateTime方式 * @param targetTime 目标时间 * @return long 小时
     */
    public static long betweenTime(String targetTime) {
        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        Temporal beginTime = LocalDateTime.now();
        Temporal endTime = LocalDateTime.parse(targetTime, df);
        Duration between = Duration.between(beginTime, endTime);
        System.currentTimeMillis();
        return between.toHours();
    }
}

输出

起始时间: 2021-09-01 15:00:00
结束时间: 2021-09-03 16:00:00
间隔时间A= 49小时
间隔时间B= 49小时
距离返校还有 74小时

“Java 时间间隔推算”的245个回复

评论已关闭。