前言
LocalDateTime
、LocalDate
、LocalTime
是 Java8 全新的日期框架,加强了对时间的管理,有很多特别好用的时间运算方法,而且是线程安全的,较之前的 java.util.Date
以及 Calander
使用起来更加的方便直观,下面介绍几种常见的日期对象用法。
-
LocalDateTime
:日期加时间的日期对象,包含年月日时分秒 -
LocalDate
:日期类,包含年月日 -
LocalTime
:时间类,包含时分秒
获取当前时间
LocalDate localDateNow = LocalDate.now();
LocalTime localTimeNow = LocalTime.now();
LocalDateTime localDateTimeNow = LocalDateTime.now();
// 当然也可以
LocalDate localDateSpecific = LocalDate.of(2024, 8, 5);
LocalTime localTimeSpecific = LocalTime.of(15, 35, 28);
LocalDateTime localDateTimeSpecific = LocalDateTime.of(2024, 8, 5, 15, 35, 28);
System.out.println("localDateNow: " + localDateNow);
System.out.println("localTimeNow: " + localTimeNow);
System.out.println("localDateTimeNow" + localDateTimeNow);
输出结果为:
localDateNow: 2024-08-05
localTimeNow: 15:40:40.446599
localDateTimeNow: 2024-08-05T15:40:40.446612
可以看到不用做格式转换就可以得到可读性很高的日期格式。注意:ISO 8601规定的日期和时间分隔符是T。标准格式如下:
日期:yyyy-MM-dd
时间:HH:mm:ss
带毫秒的时间:HH:mm:ss.SSS
日期和时间:yyyy-MM-dd’T’HH:mm:ss
带毫秒的日期和时间:yyyy-MM-dd’T’HH:mm:ss.SSS
获取当前时间的年月日时分秒
LocalDateTime localDateTime = LocalDateTime.now(); // 获取当前时间
int year = localDateTime.getYear(); // 获取年份 2024
int month = localDateTime.getMonthValue(); // 获取月份 8
int day = localDateTime.getDayOfMonth(); // 获取月中的天数 5
int hour = localDateTime.getHour(); // 获取当前的小时 15
int minute = localDateTime.getMinute(); // 获取当前分钟 35
int second = localDateTime.getSecond(); // 获取当前秒数 22
时间与字符串相互转换
可参考Java各类