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) + "年");
}
运行结果