java时间计算的方法

Question

java后台计算某一时间之后的日期,或者某一天之后的日期

Answer

方法一:Calendar

//生成当前时间
Date date = new Date();

//转换时间格式
Calendar calendar = Calendar.getInstance();
calendar.setTime(date );

//计算当前时间一年后日期
calendar.add(Calendar.YEAR, 1);
//计算当前时间一个月后日期
calendar.add(Calendar.MONTH, 1);
//计算当前时间一天后日期
calendar.add(Calendar.DATE, 1);
//计算当前时间一小时后日期
calendar.add(Calendar.HOUR, 1);
//计算当前时间一分钟后日期
calendar.add(Calendar.MINUTE, 1);
//计算当前时间一秒钟后日期
calendar.add(Calendar.SECOND, 1);
//计算当前时间一毫秒后日期
calendar.add(Calendar.MILLISECOND, 1);

//计算后时间
Date dataComplet = calendar.getTime();

注:calendar作为计算时间的类还是十分好用的,在日期简单的加减上面十分便捷,但有一些方法是有坑的,比如计算当前日期是一年中第几周(WEEK_OF_YEAR),需要特别注意一点~

方法二:LocalDate

//生成当前时间
LocalDate todyTime = LocalDate.now();

//如果是取数据库中的Date类型需要转换一下,具体如下
Date syTime = entity.getSyTime();
Instant instant = syTime.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
LocalDate localDate = instant.atZone(zoneId).toLocalDate();

//计算当前时间一年后日期
localDate = localDate.plus(1, ChronoUnit.YEARS);
//计算当前时间一个月后日期
localDate = localDate.plus(1, ChronoUnit.MONTHS);
//计算当前时间一星期后日期
localDate = localDate.plus(1, ChronoUnit.WEEKS);
//计算当前时间一天后日期
localDate = localDate.plus(1, ChronoUnit.DAYS);
//计算当前时间一小时后日期
localDate = localDate.plus(1, ChronoUnit.HOURS);
//计算当前时间一分钟后日期
localDate = localDate.plus(1, ChronoUnit.MINUTES);
//计算当前时间一秒钟后日期
localDate = localDate.plus(1, ChronoUnit.SECONDS);
//计算当前时间一毫秒后日期
localDate = localDate.plus(1, ChronoUnit.YEARS);

//计算后转回Date格式
ZonedDateTime zdt = localDate.atStartOfDay(zoneId);
Date dataComplet = Date.from(zdt.toInstant());

你可能感兴趣的:(java,java,spring)