简介
- 从Java 8开始,java.time包提供了新的日期和时间API,主要涉及的类型有
- 本地日期和时间:LocalDateTime,LocalDate,LocalTime
- 带时区的日期和时间:ZonedDateTime
- 时刻:Instant
- 时区:ZoneId,ZoneOffset
- 时间间隔:Duration
- 以及一套新的用于取代SimpleDateFormat的格式化类型DateTimeFormatter
- 和旧的API相比,新的API严格区分了时刻、本地日期、本地时间和带时区的时间,并且对时间和日期的计算更加方便
- 此外,新API修正了2个不合理的常量设计
- Month的范围用1~12表示1月到12月
- Week的范围用1~7表示周一到周日
- 新API几乎都是不可变类型(和String类似),可以放心使用不必担心被修改
使用
```java public class LocalDateTimeTest { public static void main(String[] args) {
} }LocalDate d = LocalDate.now(); // 当前日期LocalTime t = LocalTime.now(); // 当前时间LocalDateTime dt = LocalDateTime.now(); // 当前日期和时间System.out.println(d); // 严格按照ISO 8601格式打印System.out.println(t); // 严格按照ISO 8601格式打印System.out.println(dt); // 严格按照ISO 8601格式打印
```
