Java获得任意一个时间的下一天的时间
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/177
一、问题
获得任意一个时间的下一天的时间
二、分析
Java提供了java.util.Date类来处理日期格式的数据,通过它可以得到其所代表的日期的年月日和时分秒信息。因此,可以很自然地想到,要得到任何一个时间的下一天的时间,为Date的Day数据加上1天即可。但是,如果是月底怎么办?如果是年底怎么办?如果还是闰年怎么办?如果要在加上1天之前,进行这些判断的话,这样的程序就会变得相当的复杂。
其实,java.util.Date类的底层的实现是通过一个long型的整型数据来保存日期的,这个值记录的是任何一个时间距1970年1月1日,0日0分0秒的毫秒数。
这里可以验证一下,通过执行下面一段代码可以得到一个整型数字51。
package com.joshua317;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("当前时间:" + simpleDateFormat.format(date));
//当前的毫秒数
long time=System.currentTimeMillis();
//得到距今多少年
System.out.println("距今:" + time/1000/60/60/24/365 + "年");
}
}
因此,完全可以不用管给定的时间是否是月底、年底或闰月的月底等条件,直接为它的毫秒数加上24小时所代表的毫秒数即可,然后再用新的long型的毫秒数构造一个新的Date类型的对象,该Date对象就是给定时间的下一天时间。
三、编程
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/177