2023年Java高级面试精华:日期时间处理与毫秒计算

需积分: 5 0 下载量 16 浏览量 更新于2024-08-03 收藏 10KB MD 举报
"本文档主要聚焦于2021年的Java高级面试题及其解答,内容涉及日期和时间处理。首先,针对如何获取年月日、小时分钟秒,Java提供了`java.util.Calendar`类,通过实例化并调用其`get()`方法,如`cal.get(Calendar.YEAR)`、`cal.get(Calendar.MONTH)`等,返回相应的日期和时间数值。在Java 8中,推荐使用`java.time.LocalDate`和`java.time.LocalDateTime`,它们提供更直观的方法,如`dt.getYear()`、`dt.getMonthValue()`等。 对于获取从1970年1月1日0时0分0秒到现在的毫秒数,有两种方式可供选择:一是通过`Calendar.getInstance().getTimeInMillis()`或`System.currentTimeMillis()`,这两个方法返回自Unix纪元(1970年1月1日)以来的毫秒数;二是使用`Clock.systemDefaultZone()`,它会根据系统的默认时区获取当前时间的毫秒数。 另外,题目中提到如何找出某月的最后一天,这可以通过`java.time.LocalDate`的`lastDayOfMonth()`方法实现,例如`LocalDate lastDateOfMonth = LocalDate.now().with(TemporalAdjusters.lastDayOfMonth());`。 格式化日期是面试中的常见问题,Java提供了多种方式。`java.text.SimpleDateFormat`是一个传统的选择,用于字符串格式化,例如`SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");`。Java 8引入了`java.time.format.DateTimeFormatter`,它提供了更灵活的日期和时间格式化,如`DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")`. 本篇文档涵盖了Java日期和时间处理的关键知识点,包括日期获取、时间戳计算、日期范围查找以及日期格式化,这对于准备Java面试者来说是非常实用的内容。"