Java设置时间为几天前/后的时间(极简)

应用场景

需要将时间设置为几天前/后;

来看这篇文章的我估计你们的设置方法大多使用 if 来判断,虽然用if也可以实现,但是很麻烦。

实现代码示例放在最后,不想看的可以往后翻。

原理

Data类型的起始时间是:1970 年 1 月 1 日 00:00:00

Data类型有2个构造参数
其中一个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。

构造函数接收一个参数,该参数是从197011日起的毫秒数。
Date(long millisec)

Data类型还有一个方法:

long getTime()
返回自 19701100:00:00 GMT 以来此 Date 对象表示的毫秒数。

相信看到这里有的人已经明白怎么做了。

实现方法

  1. 得到当前时间的毫秒数
  2. 计算间隔时间的毫秒数
  3. 相加/减得到目标时间的毫秒数
  4. 通过构造方法生成一个新的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));

输出

当前时间:2020061015:13:44
七天后的时间:2020061715:13:44

Date对象自动通过毫秒数计算出了时间,再也不用你担心2月份和闰年带来的问题了,是不是比 if 简单很多啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值