Java函数:如何按照指定格式格式化日期和时间?
在 Java 中,要按照指定的格式格式化日期和时间,可以使用 SimpleDateFormat 类。SimpleDateFormat 类是一个简单的日期格式化类,它可以将日期格式化为指定的字符串。使用 SimpleDateFormat 类可以实现将 Date 类型的日期数据格式化为指定的字符串格式,或将字符串格式转换为 Date 类型的日期数据。
一、SimpleDateFormat 类的使用
为了使用 SimpleDateFormat 类来格式化日期和时间,我们需要按照以下步骤进行:
1. 创建 SimpleDateFormat 对象
2. 设置日期时间格式
3. 使用 SimpleDateFormat 对象格式化日期时间
下面,我们来分别介绍这三个步骤。
1. 创建 SimpleDateFormat 对象
创建 SimpleDateFormat 对象的方法如下:
SimpleDateFormat sdf = new SimpleDateFormat();
以上代码将创建一个默认格式的 SimpleDateFormat 对象。
SimpleDateFormat 类提供了多种构造函数,可以根据不同的需求来创建 SimpleDateFormat 对象。以下是一些常用的构造函数:
public SimpleDateFormat()
public SimpleDateFormat(String pattern)
public SimpleDateFormat(String pattern, Locale locale)
个构造方法创建一个默认格式的 SimpleDateFormat 对象。第二个构造方法需要传入一个字符串模式作为参数,用于指定日期时间的格式。第三个构造方法将第二个参数指定为本地化对象,用于指定日期时间格式所使用的语言环境。
2. 设置日期时间格式
使用 SimpleDateFormat 类格式化日期时间之前,我们需要先设置日期时间格式。日期时间格式通常由一些代表日期和时间的格式字符组成,如下表所示:
日期时间格式字符 说明
yyyy 4 位数的年份
yy 2 位数的年份
MM 月份
M 月份(不补齐 0)
dd 日期
d 日期(不补齐 0)
HH 24 小时制的小时数
H 24 小时制的小时数(不补齐 0)
hh 12 小时制的小时数
h 12 小时制的小时数(不补齐 0)
mm 分钟
m 分钟(不补齐 0)
ss 秒钟
s 秒钟(不补齐 0)
SSS 毫秒
E 星期几(英文名称)
a 上午或下午标识符
Z 时区
根据需要,我们可以使用这些格式字符来组合成一个日期时间格式模式。例如,要将日期时间格式化为 yyyy-MM-dd HH:mm:ss 的形式,我们可以使用以下格式模式:
String pattern = "yyyy-MM-dd HH:mm:ss";
3. 使用 SimpleDateFormat 对象格式化日期时间
在设置了 SimpleDateFormat 对象的格式之后,我们就可以使用 format() 方法将 Date 类型的日期数据格式化为指定的字符串格式。format() 方法的返回值为 String 类型。
以下代码演示了如何将当前日期时间格式化为 yyyy-MM-dd HH:mm:ss 的形式:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now = new Date();
String strNow = sdf.format(now);
在上面的代码中,我们使用 SimpleDateFormat 类创建了一个格式为 yyyy-MM-dd HH:mm:ss 的 SimpleDateFormat 对象。然后,我们获取了当前日期时间并将其格式化为指定的字符串格式。最终,我们将格式化后的日期时间保存到 strNow 变量中。
二、示例代码
下面给出一个完整的示例代码,演示了如何使用 SimpleDateFormat 类来格式化日期和时间:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatExample {
public static void main(String[] args) {
// 创建一个格式为 yyyy-MM-dd HH:mm:ss 的日期时间格式化对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 获取当前日期时间并格式化为字符串
Date now = new Date();
String strNow = sdf.format(now);
System.out.println(strNow);
// 将字符串解析为日期时间
try {
Date date = sdf.parse("2020-01-01 12:00:00");
System.out.println(date);
} catch (Exception e) {
e.printStackTrace();
}
}
}
在上面的代码中,我们首先创建了一个格式为 yyyy-MM-dd HH:mm:ss 的 SimpleDateFormat 对象。然后,我们获取了当前日期时间并将其格式化为指定的字符串格式。最终,我们将格式化后的日期时间输出到控制台。
接着,我们使用 parse() 方法将字符串格式的日期时间解析为 Date 类型的日期数据。在解析字符串时,要注意要使用与格式化相同的日期时间格式。否则,解析将失败并抛出异常。
执行上述代码,将输出以下结果:
2022-02-02 14:43:11
Wed Jan 01 12:00:00 CST 2020
三、总结
在 Java 中,使用 SimpleDateFormat 类能够很方便地格式化日期和时间。我们可以使用 SimpleDateFormat 类将 Date 类型的日期数据格式化为指定的字符串格式,或将字符串格式转换为 Date 类型的日期数据。要使用 SimpleDateFormat 类来格式化日期和时间,我们需要先创建 SimpleDateFormat 对象,然后设置日期时间格式,最后使用 SimpleDateFormat 对象格式化日期时间。
