DateFormat类
java.text.DateFormat是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。
*格式化:按照指定的格式,从Date对象转换为String对象。日期->文本
*解析:按照指定的格式,从String对象转换为Date对象。文本->日期
成员方法:
String format(Date date)按照指定的模式,把Date日期格式化为符合模式的字符串,日期->文本。
Date parse( String source)把符合模式的字符串解析为Date日期,文本->日期。
DateFormat类是一个抽象类,无法直接创建对象使用,可以使用DateFormat类的子类SimpleDateFormat类
SimpleDateFormat类
创建默认或自定义格式的格式对象
(1)SimpleDateFormat():创建默认格式化方式的对象
(2)public SimpleDateFormat(String pattern):创建指定pattern格式的对象。(参数pattern是一个字符串,代表日期时间的自定义格式)
y :年 、M:月 、 d:日、 H :时、m :分 、s:秒 注:模式中字母不能改,连接模式的符号可以改
备注:更详细的格式规则,可以参考SimpleDateFormat类的API文档。
构造方法代码如下:
1 import java.text.DateFormat; 2 import java.text.SimpleDateFormat; 3 4 public class Demo01 { 5 public static void main(String[] args) { 6 // 对应的日期格式如:2018-01-16 15:06:38 7 DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 8 } 9 }
Format方法使用代码如下:
1 import java.text.DateFormat; 2 import java.text.SimpleDateFormat; 3 import java.util.Date; 4 /* 5 把Date对象转换成String字符串 6 */ 7 public class Demo02 { 8 public static void main(String[] args) { 9 Date date = new Date(); 10 // 创建日期格式化对象,在获取格式化对象时可以指定风格 11 DateFormat df = new SimpleDateFormat("yyyy年MM月dd日"); 12 String str = df.format(date); 13 System.out.println(str); // 2020年11月3日 14 } 15 }
Prase方法使用代码如下:
1 import java.text.DateFormat; 2 import java.text.ParseException; 3 import java.text.SimpleDateFormat; 4 import java.util.Date; 5 /* 6 把String转换成Date对象 7 */ 8 public class Demo03{ 9 public static void main(String[] args) throws ParseException { 10 DateFormat df = new SimpleDateFormat("yyyy年MM月dd日"); 11 String str = "2018年12月11日"; 12 Date date = df.parse(str); 13 System.out.println(date); // Tue Dec 11 00:00:00 CST 2018 14 } 15 }
注意:
public Date parse(String source) throws ParseExceptionparse方法声明了一个异常叫ParseException,如果字符串和构造方法的模式不一样,那么程序就会抛出此异常一个抛出了异常的方法,就必须的处理这个异常,要么throws(继续抛出)这个异常,要么try-catch自己处理。
有关异常处理机制详细内容后面会说到。