两个日期时间之间的天数

有一种low的方式,就是你把两个时间都换成秒,然后除以一天的秒数,然后向上取整,就是算的天数。但是这么实现太low啦。
jdk有高级的API,我们为啥还要自己去实现呢,问题就是我们不知道。
所以,我在这写个笔记,记录下,jdk 1.8 是怎么做的。

//获取两个时间之间的日期
public static int getDatePoor(Date endDate, Date nowDate) {
Calendar cal = Calendar.getInstance();
cal.setTime(endDate);
long time1 = cal.getTimeInMillis();
cal.setTime(nowDate);
long time2 = cal.getTimeInMillis(); 
long between_days=(time2-time1)/(1000*3600*24); 
int parseInt = Integer.parseInt(String.valueOf(between_days));
parseInt = parseInt + 1;
return parseInt ; 

}
/**
 * 计算两个时间点之间的天数
 */
private static void getBetweenDay() {
  LocalDate start = LocalDate.of(2018, 2, 12);
  LocalDate now = LocalDate.now();
  System.out.println("两个时间之间的天数是:" + TimesUtils.getBetweenDay(start, now) + " 天。");
}
 
/**
 * 计算两个时间点之间的天数
 */
public static long getBetweenDay(LocalDate start, LocalDate end) {
  return end.toEpochDay() - start.toEpochDay();
}

后面的那个方法就是重点啦。

LocalDate.toEpochDay()。

将日期转换成Epoch 天,Epoch就是从1970-01-01(ISO)。开始的天数,和那个时间戳是一个道理,时间戳是秒数。

发布了15 篇原创文章 · 获赞 2 · 访问量 215

猜你喜欢

转载自blog.csdn.net/u010777507/article/details/103779068