我们可能希望按着某种习惯来输出时间,比如时间的顺序:年 月 星期 日或者年 月 星期 日 小时 分 秒。
Java早期使用java.text包中的DateFormat的子类SimpleDateFormat来实现日期的格式化,JDK 1.5版本提供了更为方便的Formatter类,Formatter类的format方法格式如下:
format(格式化模式,日期列表)
按着“格式化模式”返回“日期列表”中所列各个日期中所含数据(年,月,日,小时等数据)的字符串表示。
目前,Java已经将format方法作为了String类的静态方法,因此,程序可以直接使用String类调用format方法对日期进行格式化。
format方法中的“格式化模式”是一个用双引号括起的字符序列,也就是字符串,该字符序列中的字符由时间格式符和普通字符所构成。
例如:日期:%ty-%tm-%td中的%ty,%tm和%td等都是时间格式符,开始的2个汉字(“日”和“期”)、冒号、格式符之间的连接字符“-”都是普通字符,通俗点说就是,不是时间格式符的都被认为是普通字符。
比如:格式符%ty、%tm和%td将分别表示日期中的“年”、“月”和“日”。
format方法返回的字符串就是“格式化模式”中的时间格式符被替换为它得到的格式化结果后的字符串,例如:
Strings=String.format(%tY年%tm月%td日,newDate(),newDate(),newDate());
format方法中的“日期列表”可以是用逗号分隔的Calendar对象或Date对象。
我们要保证format方法“格式化模式”中的格式符的个数与“日期列表”中列出的日期个数相同。
format方法默认按从左到右的顺序使用“格式化模式”中的格式符来格式“日期列表”中对应的日期,而“格式化模式”中的普通字符保留原样。
我们希望用几个格式符号格式“日期列表”中的同一个日期,可以在“格式化模式”中使用“<”,比如:%ty-%<tm-%<td中的三个格式符将格式化同一日期,即含有“<”的格式符和它前面的格式符格式同一个日期,例如:
Strings=String.format(%ty年%<tm月%<td日,newDate());
常用的日期格式符: