您的位置:

Java日期格式转换

一、介绍

在Java开发中,日期格式转换是一个常见的需求。例如,从数据库中读取的日期格式可能与我们的要求不一致,需要对其进行转换。本文将探讨Java中如何进行日期格式的转换。

二、格式化日期

1. SimpleDateFormat类

Java提供了SimpleDateFormat类用于将日期转换成指定的格式。下面是一个简单的例子:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date date = new Date();
String formatDate = sdf.format(date);
System.out.println(formatDate);

输出结果为:

2021年10月16日 10:23:45

在此例子中,SimpleDateFormat的构造函数中给定了要转换成的日期格式,然后调用format方法将Date类型的日期转换成了字符串。

2. DateTimeFormatter类

Java8之后引入了新的日期时间API(java.time包),其中DateTimeFormatter类用于日期格式化。下面是一个常用的例子:

LocalDateTime dateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
String formattedDateTime = dateTime.format(formatter);
System.out.println(formattedDateTime);

输出结果为:

2021/10/16 10:30:10

三、解析日期

1. SimpleDateFormat类

除了将日期格式化成指定的格式,Java也支持将字符串解析为日期对象。SimpleDateFormat类同样可以实现解析日期。例如:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = "2021-10-16 10:35:23";
Date date = sdf.parse(strDate);
System.out.println(date);

输出结果为:

Sat Oct 16 10:35:23 CST 2021

在此例子中,SimpleDateFormat的parse方法将字符串解析成了Date类型的日期。

2. DateTimeFormatter类

Java8之后的新日期时间API同样支持将字符串解析为日期。下面是一个例子:

String strDate = "2021/10/16 10:40:12";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse(strDate, formatter);
System.out.println(dateTime);

输出结果为:

2021-10-16T10:40:12

四、总结

本文介绍了Java中日期格式转换的两种常用方式:SimpleDateFormat和DateTimeFormatter。在实际开发中,我们需要根据具体的需求选择合适的方式进行日期处理。