欢迎访问宙启技术站
智能推送

Java中的DateFormat函数用法详解

发布时间:2023-06-23 17:46:22

Java中的DateFormat函数是用来格式化日期和时间的函数,它提供了将日期和时间对象转换成指定格式字符串,也提供了将字符串转换成日期和时间对象的功能。下面详细介绍DateFormat函数的用法。

一、DateFormat 类

DateFormat 类是一个抽象类,它提供了多种格式化和解析日期的方法,例如:将日期和时间格式化成字符串,将字符串解析成日期和时间等。

实际上,DateFormat 类是一个工厂类,可以使用其静态方法得到不同的格式器对象。

二、常用的方法

1. SimpleDateFormat

SimpleDateFormat 类是 DateFormat 类的一个子类,它可以通过指定模式字符串来格式化日期和时间。

创建 SimpleDateFormat 类的对象时需要传入一个格式化字符串作为参数,例如:"yyyy.MM.dd G 'at' HH:mm:ss z"。

(1) 该字符串中的字母形式字符是需要使用单引号括起来的,例如:"HH'mm'"。

(2) 字母形式字符用于日期和时间格式化的模板,例如:"yyyy" 表示年份,"MM" 表示月份,"dd" 表示天数,"HH" 表示小时,"mm" 表示分钟,"ss" 表示秒数,"S" 表示毫秒数。

示例:

// 格式化当前时间,得到的为字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String dateStr = sdf.format(new Date()); // 获取当前时间
System.out.println("当前时间为:" + dateStr);

输出:

当前时间为:2021/08/06 15:23:36

注:这里日期、时间等位数不足两位时,前面会使用0补齐。

(3) 字符串转换为日期

通过 SimpleDateFormat 类的 parse() 方法,可以将字符串解析成日期对象。

示例:

// 字符串转换为日期
String dateStr = "2021/08/06 15:23:36";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = sdf.parse(dateStr);
System.out.println("转换后的日期为:" + date);

输出:

转换后的日期为:Fri Aug 06 15:23:36 CST 2021

2. DateFormat.getDateInstance() 方法

该方法返回一个默认格式化日期的 DateFormat 对象。

示例:

DateFormat df1 = DateFormat.getDateInstance();
String dateStr1 = df1.format(new Date());
System.out.println("默认格式化日期: " + dateStr1);

输出:

默认格式化日期: 21-8-6

3. DateFormat.getTimeInstance() 方法

该方法返回一个默认格式化时间的 DateFormat 对象。

示例:

DateFormat df2 = DateFormat.getTimeInstance();
String dateStr2 = df2.format(new Date());
System.out.println("默认格式化时间: " + dateStr2);

输出:

默认格式化时间: 下午3:29:12

4. DateFormat.getDateTimeInstance() 方法

该方法返回一个默认格式化日期和时间的 DateFormat 对象。

示例:

DateFormat df3 = DateFormat.getDateTimeInstance();
String dateStr3 = df3.format(new Date());
System.out.println("默认格式化日期和时间: " + dateStr3);

输出:

默认格式化日期和时间: 21-8-6 下午3:30:47

5. DateFormat.format() 方法

该方法可以将日期对象格式化成字符串。

示例:

Date date = new Date();
String dateStr4 = DateFormat.getDateTimeInstance().format(date);
System.out.println("格式化日期和时间: " + dateStr4);

输出:

格式化日期和时间: 21-8-6 下午3:43:46

6. DateFormat.parse() 方法

该方法可以将字符串解析成日期对象。

示例:

String dateStr5 = "2013-1-14";
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date5 = sdf.parse(dateStr5);
System.out.println("解析后的日期: " + date5);

输出:

解析后的日期: Mon Jan 14 00:00:00 CST 2013

注:解析的字符串格式一定要和模式串相匹配。

三、注意事项

1. SimpleDateFormat 类不是线程安全的,使用时需特别注意。

2. 在日期转换时,需要注意对象之间的类型转换,并且需要处理可能出现的异常。