该类在java.taxt包下,该类间接继承了Object类
该类继承的类有:DateFormat、Format、Object
该类是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。它允许格式化(日期文本),解析(文本日期)和规范化。我们具体学习'日期格式化和解析'
该类允许从选择日期时间格式化的任何用户定义的模式开始
什么是'日期和时期模式':日期和时间格式有日期和时间模式字符串指定。在日期和时间模式字符串中,从A到Z以及从a到z的字母被解释为表示日期或时间字符串的组件的模式字母。可以使用单引号'引用文本,以避免解释
常用的模式字母即对应关系如:y年 M月 d日 H时 m分 s秒
该类的构造方法如下表
方法名 | 说明 |
---|---|
public SimpleDateFormat() | 构造一个SimpleDateFormat,使用默认的模式和默认的日期格式。无参 |
public SimpleDateFormat(String pattern) | 构造一个SimpleDateFormat,使用给定的模式和默认的日期格式。带参 |
格式化(从Date到String)。如下
xxxxxxxxxx
public final String format(Date date); //format方法用于将日期格式化成日期/时间字符串。即理解为通过一个日期得到一个字符串
解析(从String到Date)。如下
xxxxxxxxxx
public Date parse(String source); //parse方法用于从给定字符串的开始解析文本以生成日期。即理解为把日期字符串变成日期对象
SimpleDateFormat类的练习
xxxxxxxxxx
package ch12;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class a_14_1测试 {
/*
构造方法:
public SimpleDateFormat(): 创建一个SimpleDateFormat对象,使用默认模式和日期格式。无参
public SimpleDateFormat(String pattern): 创建一个SimpleDateFormat对象,使用给定的模式和默认的日期格式。带参
格式化:从Date到String
public final String format(Date date): 将日期格式化成日期/时间字符串
解析: 从String到Date
public Date parse(String source): 从给定字符串的开始解析文本以生成日期
*/
//下面那行的throws ParseException是抛出异常的意思,是由于我们要处理64行那里的报错,选的处理方案
public static void main(String[] args) throws ParseException {
//格式化:从Date到String。理解为从一个日期到一个字符串
Date d = new Date();
//要格式化就要使用format方法,要使用format方法就需要先创建SimpleDateFormat对象,其中有两种构造方法可创建对象
SimpleDateFormat sdf = new SimpleDateFormat(); //SimpleDateFormat是java.text包下的。无参
String s = sdf.format(d); //把d格式化为字符串类型的,再把转化后的d赋值给s
System.out.println(s); //输出字符串的s,即2022/10/1 下午3:41
//总结:无参构造方法创建的SimpleDateFormat对象,只能使用默认模式和日期格式,即输出的样式为2022/10/1 下午3:41
//带参构造方法创建SimpleDateFormat对象如下:
Date d2 = new Date();
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMddHHmmss");//yyyyMMddHHmmss代表年月日时分秒
String s2 = sdf2.format(d2); //把d格式化为字符串类型的,再把转化后的d赋值给s
System.out.println(s2); //输出20221001154835
//优化一下上面的带参构造方法创建SimpleDateFormat对象如下:
Date d3 = new Date();
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
String s3 = sdf3.format(d3);
System.out.println(s3);
//再优化一下上面的带参构造方法创建SimpleDateFormat对象如下:
Date d4 = new Date();
SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String s4 = sdf4.format(d4);
System.out.println(s4);
System.out.println("-------------------");
//格式化如上,即Date到String
//----------------------------------------------------------------------------------------------------------
//解析如下,即String到Date
String ss = "2022-5-20 12:12:12"; //先给一个日期字符串
//要解析就要使用parse方法,要使用parse方法就需要先创建SimpleDateFormat对象,其中有两种构造方法可创建对象。下面只演示带参的
SimpleDateFormat sdf5 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d5 = sdf5.parse(ss); //这行的parse会报错,解决:选中parse,按Alt+Enter,再选第一个Add.....处理方案
System.out.println(d5);
//注意:64行的模式要跟61行的日期字符串相对应,不然也解析不了
}
}