学科分类
目录
Java基础

SimpleDateFormat类

在使用DateFormat对象的parse()方法将字符串解析为日期时,需要输入固定格式的字符串,这显然不够灵活。为了能够更好地格式化日期、解析字符串,Java中提供了一个SimpleDateFormat类。

SimpleDateFormat类是DateFormat类的子类,它可以使用new关键字创建实例对象。在创建实例对象时,它的构造方法需要接收一个表示日期格式模板的字符串参数。

接下来通过一个案例演示,如何使用SimpleDateFormat类将日期对象以特定的格式转为字符串形式,如文件1所示。

文件1 Example26.java

 1    import java.text.*;
 2    import java.util.*;
 3    public class Example26 {
 4        public static void main(String[] args) throws Exception {
 5            // 创建一个SimpleDateFormat对象
 6            SimpleDateFormat sdf = new SimpleDateFormat(
 7                                "Gyyyy年MM月dd日:今天是yyyy年的第D天,E"); 
 8            // 按SimpleDateFormat对象的日期模板格式化Date对象
 9            System.out.println(sdf.format(new Date()));
 10        }
 11    }

运行结果如图1所示。

图1 运行结果

在文件1中,在创建SimpleDateFormat对象时传入日期格式模板“Gyyyy年MM月dd日:今天是yyyy年的第D天,E”,在调用SimpleDateFormat的format()方法时,会将Date对象格式化成如模板格式的时间形式,即“公元2018年01月27日:今天是2018年的第27天,星期六”。

上面通过SimpleDateFormat类将一个Date时间对象转换为指定格式字符串形式,接下来通过一个案例来演示,如何使用SimpleDateFormat类将一个指定日期格式的字符串解析为Date对象,如文件2所示。

文件2 Example27.java

 1    import java.text.*;
 2    public class Example27 {
 3        public static void main(String[] args) throws ParseException{
 4             // 创建一个SimpleDateFormat对象,并指定日期格式
 5             SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
 6             // 定义一个日期格式的字符串
 7             String str = "2018/01/27";
 8             // 将字符串解析成Date对象
 9             System.out.println(sdf.parse(str));
 10        }
 11    }

运行结果如图2所示。

图2 运行结果

在文件2中,首先在创建SimpleDateFormat对象时传入日期格式模板“yyyy/MM/dd”,然后定义了一个指定日期格式的字符串“2018/01/27”,最后调用SimpleDateFormat的parse()方法将符合日期模板格式的字符串解析成Date对象。

SimpleDateFormat的功能非常强大,在创建SimpleDateFormat对象时,只要传入合适的格式字符串参数,就能解析各种形式的日期字符串或者将Date日期格式化成任何形式的字符串。其中,格式字符串参数是一个使用日期/时间字段占位符的日期模板。

点击此处
隐藏目录