java的Date,Calendar类型使用不方便,而且Date类线程不安全,LocalDateTime是Java8推出的线程安全、简易、高可靠的时间包。并且数据库中也支持类型,在数据存储时候使时间变得简单。Java8推出的包括三个相关的时间类型:LocalDateTime年月日十分秒;LocalDate日期;LocalTime时间;三个包的方法都差不多。
LocalDateTime.now(); LocalDate.now(); LocalTime.now(); localDateTime3.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); LocalDateTime localDateTime4 = localDateTime3.minus(23,ChronoUnit.MONTHS); localDateTime4.atZone(ZoneId.systemDefault()); localDateTime4 = localDateTime4.withHour(3); localDateTime4 = localDateTime4.withYear(2016); localDateTime4 = localDateTime4.with(ChronoField.MONTH_OF_YEAR,3)
使用Duration进行 day,hour,minute,second等的计算 使用Period进行Year,Month的计算
Duration duration = Duration.between(localDateTime,localDateTime4); duration.toDays(); duration.toHours(); duration.toMinutes(); Period period2 = Period.between(localDateTime.toLocalDate(),localDateTime4.toLocalDate()); period2.getYears(); period2.getMonths(); period2.toTotalMonths();
Date date = Date.from(localDateTime4.atZone(ZoneId.systemDefault()).toInstant()); LocalDateTime dateTime = LocalDateTime.ofInstant(date.toInstant(),ZoneId.systemDefault()); localDateTime3.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();