Java设置时间为几天前/后的时间(极简)
应用场景
需要将时间设置为几天前/后;
来看这篇文章的我估计你们的设置方法大多使用 if 来判断,虽然用if也可以实现,但是很麻烦。
实现代码示例放在最后,不想看的可以往后翻。
原理
Data类型的起始时间是:1970 年 1 月 1 日 00:00:00
Data类型有2个构造参数
其中一个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
Date(long millisec)
Data类型还有一个方法:
long getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
相信看到这里有的人已经明白怎么做了。
实现方法
- 得到当前时间的毫秒数
- 计算间隔时间的毫秒数
- 相加/减得到目标时间的毫秒数
- 通过构造方法生成一个新的Date对象,该对象的时间值即使目标值
实现代码示例
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
System.out.println("当前时间:"+format.format(date));
// 设置时间为7天后
// 1. 得到当前时间的毫秒数
long time = date.getTime();
// 2. 计算间隔时间的毫秒数
long n=7*24*60*60*1000;
// 3. 相加/减得到目标时间的毫秒数
time=time+n;
// 4. 通过构造方法生成一个新的Date对象,该对象的时间值即使目标值
date=new Date(time);
System.out.println("七天后的时间:"+format.format(date));
输出
当前时间:2020年06月10日 15:13:44
七天后的时间:2020年06月17日 15:13:44
Date对象自动通过毫秒数计算出了时间,再也不用你担心2月份和闰年带来的问题了,是不是比 if 简单很多啊。