java 计算日期差

1.我们要用到 SimpleDateFormat 类,首先设置日期格式

// 设置日期格式为 "yy-mm-dd" 分别对应年月日
        SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");

// 设置日期格式为 "yyyy-mm-dd hh-mm-ss" 分别对应 年月日 时分秒
        format = new SimpleDateFormat("yyyy-mm-dd hh-mm-ss");

白话文的讲:这些A——Z,a——z这些字母(不被单引号包围的)会被特殊处理替换为对应的日期时间,其他的字符串还是原样输出。

日期和时间模式(注意大小写,代表的含义是不同的)

yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)。
K:和hh差不多,表示一天12小时制(0-11)。
z:表示时区 
————————————————
版权声明:本文为CSDN博主「Hern(宋兆恒)」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36761831/article/details/79691119

2.输入时间

// 一定要和 “yy-mm-dd” 的格式对应上
Date d1 = format.parse("2022-10-01");
Date d2 = format.parse("2025-10-30");

3.使用 getTime()获取当前相对于 Date 类中时间原点相差的 毫秒数

Date d1 = format.parse("2022-01-01");

计算时间差并且查看Date类中的时间是相对那一年算的

public static void main(String[] args) throws ParseException {
        // 设置日期格式为 "yy-MM-dd" 分别对应年月日
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String s1 = "2022-01-01";
        String s2 = "2025-10-01";
        // 获取设置好了时间的 Date 对象
        Date d1 = format.parse(s1);
        System.out.println("d1: " + d1.getTime() + "ms");
        Date d2 = format.parse(s2);
        System.out.println("d2: " + d2.getTime() + "ms");
        // 使用 Date 对象的 getTime() 方法 的到当前对象相对于 1970-01-01 相差的毫秒数
        long difms = d2.getTime() - d1.getTime();
        System.out.println(s1 + "和" + s2 + "相差" + difms/3600/24/1000 + "天");
        System.out.println("Date 类中时间原点为: " + (2022 - d1.getTime()/1000/24/3600/365) + "年");
    }

运行结果

java 计算日期差_第1张图片

 

你可能感兴趣的:(java,开发语言)