1.这是在一次计算人员的执业年限,无意间找到的jdk自带的日期计算方法。
需求是这样的,就是一个人员有一个首次执业时间,要求算出距今执业了几年,这里就涉及到年月日的计算,自己写也是可以计算写出来,但是我就想 jdk没有自带的方法去计算日期的吗? 终于皇天不负有心人,上代码↓
//获取首次执业时间
Date firstLicenseDate = entity.getProperty("firstLicenseDate", Date.class,null);
//得到当前时区,当前时间
LocalDate now=LocalDate.now()
//获取当前时区的ZoneId,用于Instant和LocalDate的转换
ZoneId zoneId = ZoneId.systemDefault();
//把Date的firstLicenseDate转换成LocalDate类型
LocalDate localDate = firstLicenseDate.toInstant().atZone(zoneId).toLocalDate();
//获取localDate到now日期的差值
Period between = Period.between(localDate, now);
/**
between.getYears()获取距今相差的年数,
between.getMonths()获取localDate的月到now月相差的月数,
between.getDays()()获取localDate的月到now月相差的天数。
*/
System.out.print("相差:" + between.getYears() + "年" + between.getMonths() + "月" + between.getDays() + "日" + "<br/>");