JDK 8 由一个新增的特性就是引入了新的时间和日期 API,可以更方便的处理日期和时间。
LocalDate
LocalDate
类用来表示一个具体的日期,但不包含具体时间,可以使用 LocalDate
的静态方法 of()
来创建一个实例。LocalDate
也包含一些方法用来获取年份、月份、天、星期几等:
LocalDate localDate = LocalDate.of(2020, 9, 15); // 初始化一个日期:2020-09-15
int year = localDate.getYear(); // 年份:2020
Month month = localDate.getMonth(); // 月份:SEPTEMBER
int dayOfMonth = localDate.getDayOfMonth(); // 月份中的第几天:15
DayOfWeek dayOfWeek = localDate.getDayOfWeek(); // 一周的第几天:TUESDAY
int length = localDate.lengthOfMonth(); // 月份的天数:30
boolean leapYear = localDate.isLeapYear(); // 是否为闰年:false
也可以调用静态方法 now()
来获取当前日期:
LocalDate now = LocalDate.now();
LocalDateTime
LocalDateTime
类是 LocalDate
和 LocalTime
的结合体,可以通过 of()
方法创建,也可以通过 LocalDate
的 atTime()
方法或 LocalTime
的 atDate()
方法将 LocalDate
或 LocalTime
合并成一个 LocalDateTime
:
LocalDateTime localDateTime = LocalDateTime.of(2020, Month.JUNE, 15, 22, 25, 54); // 2020-06-15T22:25:54
LocalDate localDate = LocalDate.now(); // 2020-09-15
LocalTime localTime = LocalTime.now(); // 22:31:15.210
LocalDateTime localDateTime = localDate.atTime(localTime); // 2020-09-15T22:31:15.210
LocalDateTime localTimeDate = localTime.atDate(localDate); // 2020-09-15T22:31:15.210
LocalDate localDateTime = localDateTime.toLocalDate(); // 2020-09-15
LocalTime localDateTime = localDateTime.toLocalTime()