Java Date如何设置特定日期格式化方法详解?
- 后端开发
- 2025-10-11
- 8
在Java中,处理日期格式化是一个常见的任务,Java提供了多种方式来格式化日期和时间,以下是几种常用的方法:
使用SimpleDateFormat类
SimpleDateFormat是Java中处理日期格式化的最常用类,它允许你定义日期的格式,并按照这个格式来格式化或解析日期。
示例代码:
import java.text.SimpleDateFormat; import java.util.Date; public class DateFormatExample { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss"); Date now = new Date(); String formattedDate = sdf.format(now); System.out.println("Formatted Date: " + formattedDate); } }
在这个例子中,"yyyyMMdd HH:mm:ss"是一个日期格式字符串,表示年月日 时:分:秒。
使用DateTimeFormatter类(Java 8+)
DateTimeFormatter是Java 8引入的新的日期时间API的一部分,它提供了更多的灵活性和更好的性能。
示例代码:
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class DateFormatExample { public static void main(String[] args) { DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss"); LocalDateTime now = LocalDateTime.now(); String formattedDate = now.format(dtf); System.out.println("Formatted Date: " + formattedDate); } }
使用java.time.format.DateTimeFormatterBuilder类(Java 9+)
DateTimeFormatterBuilder是Java 9中引入的,它提供了构建复杂的日期时间格式器的功能。

示例代码:
import java.time.format.DateTimeFormatterBuilder; import java.time.temporal.ChronoField; public class DateFormatExample { public static void main(String[] args) { DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder(); DateTimeFormatter formatter = builder.appendLiteral("yyyyMMdd ") .appendValue(ChronoField.MONTH_OF_YEAR, 2) .appendLiteral("") .appendValue(ChronoField.DAY_OF_MONTH, 2) .toFormatter(); String formattedDate = formatter.format(LocalDateTime.now()); System.out.println("Formatted Date: " + formattedDate); } }
使用java.time.format.DateTimeFormatter类(Java 10+)
Java 10中,DateTimeFormatter类被进一步扩展,增加了对更多日期时间字段的支持。
示例代码:
import java.time.format.DateTimeFormatter; import java.time.LocalDateTime; public class DateFormatExample { public static void main(String[] args) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss"); LocalDateTime now = LocalDateTime.now(); String formattedDate = now.format(formatter); System.out.println("Formatted Date: " + formattedDate); } }
| 格式化类 | 日期格式字符串示例 | 说明 |
|---|---|---|
| SimpleDateFormat | “yyyyMMdd HH:mm:ss” | 旧版API,灵活但性能较低 |
| DateTimeFormatter | “yyyyMMdd HH:mm:ss” | 新版API,性能更好,更加灵活 |
| DateTimeFormatterBuilder | “yyyyMMdd HH:mm:ss” | 用于构建复杂的日期时间格式器,需要更多代码 |
| DateTimeFormatter | “yyyyMMdd HH:mm:ss” | Java 10中扩展,提供更多字段支持 |
FAQs
Q1: 如何解析日期字符串为Date对象?

A1: 使用SimpleDateFormat或DateTimeFormatter的parse方法,以下是一个使用SimpleDateFormat的例子:
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateFormatExample { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss"); String dateString = "20250101 12:00:00"; try { Date date = sdf.parse(dateString); System.out.println("Parsed Date: " + date); } catch (ParseException e) { e.printStackTrace(); } } }
Q2: 如何获取当前日期的年、月、日?
A2: 使用LocalDate类和相应的getYear、getMonthValue、getDayOfMonth方法,以下是一个例子:
import java.time.LocalDate; public class DateFormatExample { public static void main(String[] args) { LocalDate now = LocalDate.now(); int year = now.getYear(); int month = now.getMonthValue(); int day = now.getDayOfMonth(); System.out.println("Year: " + year + ", Month: " + month + ", Day: " + day); } }