Java从入门到放弃 · DateFormat类和SimpleDateFormat详解

397 阅读3分钟

“这是我参与8月更文挑战的第15天,活动详情查看: 8月更文挑战

DateFormat类

public abstract class DateFormat extends Format

DateFormat 是日期/时间格式化子类的抽象类。它位于java.text包下,使用时需导入 java.text.Format

DateFormat 可帮助进行格式化并解析任何语言环境的日期。显然它的作用就是格式化日期。(也就是日期 -> 文本)、解析(文本-> 日期)

DateFormat类是一个抽象类,我们知道抽象类不能直接使用new来创建对象,因此我们需要使用它的子类SimpleDateFormat

java.text.SimpleDateFormat

SimpleDateFormat类

SimpleDateFormat允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。

知道了它是干什么的,那我们就来看它的构造方法和成员方法。

SimpleDateFormat类的构造方法

我们重点学习就是:

SimpleDateFormat(String pattern)

用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。

参数: pattern - 描述日期和时间格式的模式

我们需要先了解这个模式是什么样的。

  字母  	日期或时间元素      	表示               	示例                                   
  y   	        年            	        Year             	1996; 96                             
  M   	        年中的月份        	Month            	July; Jul; 07                        
  D   	        年中的天数        	Number           	189                                  
  d   	        月份中的天数       	Number           	10                                   
  F   	        月份中的星期       	Number           	2                                    
  H   	        一天中的小时数(0-23Number           	0                                    
  m   	        小时中的分钟数      	Number           	30                                   
  s   	        分钟中的秒数       	Number           	55                                   
  S   	        毫秒数          	        Number           	978                                  
  z   	        时区           	        General time zone	Pacific Standard Time; PST; GMT-08:00
  Z   	        时区           	        RFC 822 time zone	-0800                              

模式字母通常是重复的,其数量确定其精确表示。比如:

“yyyy-MM-dd HH:mm:ss” 2021-08-15 20:00:00

“yyyy年M月dd日 HH:mm:ss” 2021年8月15日 20:00:00

SimpleDateFormat类的成员方法

这里我们说的方法是SimpleDateFormat从父类继承而来的方法

format方法

public final String format(Date date)

将一个 Date 格式化为日期/时间字符串。 

参数:
date - 要格式化为时间字符串的时间值。 
返回:
已格式化的时间字符串。

parse方法

public Date parse(String source)
               throws ParseException

从给定字符串的开始解析文本,以生成一个日期。该方法不使用给定字符串的整个文本。 

参数:
source - 一个 String,应从其开始处进行解析。 
返回:
解析字符串得到的 Date

具体实例

//1.创建SimpleDateFormat对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//2.创建Date对象
Date date = new Date();
//3.调用format方法
String format = sdf.format(date);
System.out.println(date);
System.out.println(format);
Date parse = null;
try {
    parse = sdf.parse("2021-08-15 20:19:16");
} catch (ParseException e) {
    e.printStackTrace();
}
System.out.println(parse);

image.png

写在最后

以上就是DateFormat和SimpleDateFormat类的介绍,赶快亲手敲一敲试一试吧。

如有不正之处,欢迎掘友们批评指正。