使用Date对象打印时间,是调用toString方法以默认的英文格式输出,有时这种格式不能满足实际需要,例如按中文格式输出时间。为此,Java提供了java.text.DateFormat类来专门用于Date对象以指定格式的字符串输出,或者将特定格式的字符串转换成一个Date对象。
DateFormat类是一个抽象类,不能直接实例化,但它提供了一系列静态工厂方法获取DateFormat类的实例对象,并调用相应方法格式化输出或解析字符串。DateFormat类提供了2个重要的方法:
(1)public final String format(Date date):将一个Date格式化为日期/时间字符串。
(2)public Date parse(String source)throws ParseException:从给定字符串的开始解析文本,以生成一个日期。
由于DateFormat类在使用时格式不够灵活,为了更好地格式化日期、解析字符串到Date对象,Java提供了子类java.text.SimpleDateFormat类。SimpleDateFormat类常用的构造方法public SimpleDateFormat(String pattern)用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。参数pattern用于描述日期和时间格式的模板的字符串。
日期和时间格式由日期和时间模板字符串指定。在日期和时间模板字符串中,未加引号的字母'A'到'Z'和'a'到'z'被解释为模式字母,用来表示日期或时间字符串元素。在SimpleDateFormat类中定义了表8-1所示的模式字母(所有其他字符'A'到'Z'和'a'到'z'都被保留)。
表8-1 模式字母及含义
续表
(www.xing528.com)
【例8-1】
使用SimpleDateFormat类演示Date对象的格式化输出,以及解析给定日期格式的字符串生成一个Date对象。
新建项目chapter8,在src目录下新建包cn.linaw.chapter8.demo01,在包里新建测试类SimpleDateFormat Test。测试类代码如图8-1所示。
图8-1 SimpleDateFormat类测试
(1)程序第7行创建了一个当前时间的Date对象。第8行显示以英文格式默认打印Date对象。
(2)程序第10行创建了一个SimpleDateFormat对象sdf1,并指定日期格式模板为字符串“yyyy年MM月dd日HH:mm:ss E”。程序第11行调用sdf1的format方法时会将Date对象格式化成指定日期格式模板的字符串形式。
(3)程序第12行创建了一个指定日期格式模板的“yyyy-MM-dd”的SimpleDateFormat对象sdf2,然后指定一个符合该模板的字符串“1982-09-21”,然后调用sdf2的parse方法将该字符串解析成Date对象。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。