Date的时间类型转换
需要事先导入Commons-lang3的依赖包
说明: 日期格式化时, yyyy 表示当天所在的年,而大写的 YYYY 代表是 week in which year,
意思是当天所在的周属于的年份,一周从周日开始,周六结束,
只要本周跨年,返回的 YYYY 就是下一年。另外需要注意:
表示月份是大写的 M
表示分钟则是小写的 m
24 小时制的是大写的 H
12 小时制的则是小写的 h
表示月份是大写的 M
表示分钟则是小写的 m
24 小时制的是大写的 H
12 小时制的则是小写的 h
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.1</version>
</dependency>
// Date类型转String类型
String date = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
System.out.println(date); // 输出 2021-05-01 01:01:01
// String类型转Date类型
Date date = DateUtils.parseDate("2021-05-01 01:01:01", "yyyy-MM-dd HH:mm:ss");
// 计算一个小时后的日期
Date date = DateUtils.addHours(new Date(), 1);
LocalDateTime的时间类型转换
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime time = LocalDateTime.now();
String localTime = df.format(time);
LocalDateTime ldt = LocalDateTime.parse("2018-01-12 17:07:05",df);
System.out.println("LocalDateTime转成String类型的时间:"+localTime);
System.out.println("String类型的时间转成LocalDateTime:"+ldt);
Date转换为LocalDate/LocalDateTime
Date nowTime = new Date();
LocalDate now = nowTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDateTime nowTime = nowTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
LocalDate / LocalDateTime转换为Date
LocalDate nowTime = LocalDate.now(ZoneId.systemDefault());
Date date = Date.from(nowTime.atStartOfDay(ZoneId.systemDefault()).toInstant());
LocalDateTime now = LocalDateTime.now(ZoneId.systemDefault());
Date date = Date.from(now.atZone(ZoneId.systemDefault()).toInstant());