Java中如何精确获取并处理当天的日期和时间信息?
- 后端开发
- 2025-10-26
- 8
在Java中获取当天日期是一个常见的需求,可以通过多种方式实现,以下是一些常用的方法:

使用java.util.Date
import java.util.Date; public class Main { public static void main(String[] args) { Date today = new Date(); System.out.println("当前日期:" + today); } }
使用java.text.SimpleDateFormat
import java.text.SimpleDateFormat; import java.util.Date; public class Main { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String today = sdf.format(new Date()); System.out.println("当前日期:" + today); } }
使用java.time.LocalDate
import java.time.LocalDate; public class Main { public static void main(String[] args) { LocalDate today = LocalDate.now(); System.out.println("当前日期:" + today); } }
使用java.time.format.DateTimeFormatter
import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); LocalDate today = LocalDate.now(); String formattedDate = today.format(formatter); System.out.println("当前日期:" + formattedDate); } }
使用java.time.format.DateTimeFormatter和java.time.temporal.TemporalAdjusters
import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; public class Main { public static void main(String[] args) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); LocalDate today = LocalDate.now(); LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth()); String formattedDate = firstDayOfMonth.format(formatter); System.out.println("当前日期:" + formattedDate); } }
表格对比
| 方法 | 优点 | 缺点 |
|---|---|---|
| java.util.Date | 简单易用 | 日期格式不灵活 |
| java.text.SimpleDateFormat | 格式灵活 | 需要额外的格式化类 |
| java.time.LocalDate | 简洁易用 | 日期格式不灵活 |
| java.time.format.DateTimeFormatter | 格式灵活 | 需要额外的格式化类 |
| java.time.format.DateTimeFormatter + java.time.temporal.TemporalAdjusters | 格式灵活,功能强大 | 需要额外的类和方法 |
FAQs
Q1:为什么使用java.time.LocalDate比java.util.Date更好?
A1:java.time.LocalDate是Java 8引入的新日期时间API,它提供了更简洁、更易用的日期时间处理方式,与java.util.Date相比,java.time.LocalDate更加直观,并且提供了更多实用的日期时间操作方法。


Q2:如何获取当前日期的年份和月份?
A2:可以使用java.time.LocalDate和java.time.format.DateTimeFormatter来实现,以下是一个示例代码:
import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { LocalDate today = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMM"); String formattedDate = today.format(formatter); System.out.println("当前日期的年份和月份:" + formattedDate); } }