类名 | 说明 |
java.util.Date |
这是Java早期版本中的主要日期类,尽管现在已经被java.time 包中的类所取代,但在一些旧代码库中仍然可以看到它的身影 |
java.util.Calendar |
这是一个抽象类,提供了操作日历字段如年、月、日、时、分、秒的方法。Calendar 类本身不能直接实例化,而是通过调用其静态方法getInstance() 来获取一个特定子类的实例,如GregorianCalendar |
java.time.LocalDate |
仅包含日期,Java8及以后版本的特性。这是Java8引入的一个全新的日期和时间API,目的是替代 java.util.Date 和 java.util.Calendar 。 |
java.time.LocalTime | 仅包含时间,Java8及以后版本的特性。这是Java8引入的一个全新的日期和时间API,目的是替代 java.util.Date 和 java.util.Calendar 。 |
java.time.LocalDateTime | 包含日期和时间,Java8及以后版本的特性。这是Java8引入的一个全新的日期和时间API,目的是替代 java.util.Date 和 java.util.Calendar 。 |
java.time.ZonedDate | 包含时区信息,日期时间等,Java8及以后版本的特性。这是Java8引入的一个全新的日期和时间API,目的是替代 java.util.Date 和 java.util.Calendar 。 |
java.time.instant | Java8新特性。时刻,不直接对应年月日信息,需要通过时区转换。 |
java.time.Period | Java8新特性,表示日期之间的差 |
java.time.Duration | Java8新特性,表示时间差,用时分秒等表示 |
java.time.DateTimeFormatter | java8新特性,用于日期和时间的格式化及字符串解析 |
// 1. java.util.Date Date date = new Date(); System.out.println(date); // Thu Dec 26 10:42:38 CST 2024 // 2. java.util.Calendar Calendar calendar = Calendar.getInstance(); System.out.println(calendar.getTime()); // Thu Dec 26 10:46:05 CST 2024 // 3. java.time.LocalDate (仅包含日期) LocalDate localDate = LocalDate.now(); System.out.println(localDate); // 2024-12-26 // 4. java.time.LocalTime (仅包含时间) LocalTime localTime = LocalTime.now(); System.out.println(localTime); // 10:50:57.348067500 // 5. java.time.localDateTime (包含日期和实际) LocalDateTime localDateTime = LocalDateTime.now(); System.out.println(localDateTime); // 2024-12-26T10:51:52.963638100 // 6.java.time.ZonedDateTime(包含时区信息和日期时间) ZonedDateTime zonedDateTime = ZonedDateTime.now(); System.out.println(zonedDateTime); // 2024-12-26T10:53:23.081457900+08:00[Asia/Shanghai] // 7 java.time.instant 表示时刻,不直接对应年月日信息,需要通过时区转换。 Instant instant = Instant.now(); System.out.println(instant); // 2024-12-26T03:01:37.407491300Z