Java面试必备:Date、Calendar与Java 8时间API解析

0 下载量 52 浏览量 更新于2024-09-01 收藏 2.22MB PDF 举报
本文主要介绍了Java中处理日期和时间的常用API,重点在于Date、Calendar以及Java 8引入的新时间API。文章旨在帮助面试者复习这些关键知识点。 在Java中,处理日期和时间的两个主要类是`Date`和`Calendar`。`Date`类代表一个具体的时刻,精确到毫秒,但它并不方便地提供获取单独年月日、时分秒的方法。而`Calendar`类则更加灵活,它可以单独设置和获取日期和时间的各个部分,如年、月、日、小时等。 `Date`类的主要方法包括: 1. `getTime()`:返回自1970年1月1日00:00:00 GMT以来的毫秒数。 2. `toString()`:将`Date`对象转换为字符串,展示为特定的日期和时间格式。 然而,`Date`类的许多其他方法已被标记为过时,不建议在新的代码中使用。 在格式化和解析日期时,`SimpleDateFormat`类扮演了重要角色。它允许我们将日期转换为自定义格式的字符串,反之亦然。例如: ```java import java.text.SimpleDateFormat; import java.util.Date; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String formattedDate = sdf.format(new Date()); // 将当前日期格式化 System.out.println(formattedDate); try { Date parsedDate = sdf.parse(formattedDate); // 解析字符串回日期对象 } catch (Exception e) { e.printStackTrace(); } ``` 随着Java 8的发布,引入了`java.time`包,其中包含`LocalDate`, `LocalTime`, `LocalDateTime`, `ZonedDateTime`等新类,提供了更加直观和强大的日期时间操作。例如,`LocalDate`可以轻松地获取年、月、日: ```java import java.time.LocalDate; LocalDate today = LocalDate.now(); int year = today.getYear(); int month = today.getMonthValue(); int dayOfMonth = today.getDayOfMonth(); ``` Java提供了多种方式来处理日期和时间。在面试中,了解并能熟练运用这些API是非常重要的。对于Java 8以后的版本,熟悉新时间API可以提升代码质量和可读性。