大家在使用Date对象输出日期字符串表示的时候,大多会遇见一些不算困难的困难。说他不算困难是因为,大家不是不会做,只是一般繁琐的转化工作使人很烦恼,而大多数人不太原意考虑。有些人可能对这方面有所了解,但可能也不够充分,所以我在这里把我所知道的写出来,一来供大家参考,二来也算是抛砖引玉,希望能有更多的人讨论这个话题。
在JAVA中有一个很有用的类:SimpleDateFormat,它使用模板方法以文本形式格式化输出日期对象。一般的用法如下:
SimpleDateFormat f=new SimpleDateFormat("MMM dd,yyyy");
f.format(new Date());
构造SimpleDateFormat使用的字符串就是模扳。这个模扳的表示即
为"February 21th, 2004"的式样。
其他模扳符号定义为:
符号 意义 显示形式
举例
G 公元 文本
AD
y 年份 数字
2001
M 月 文本或数字
July或07
d 日 数字
10
h A.M./P.M.制的钟点(1~12) 数字
12
H 24小时制的钟点(0~23) 数字
0
m 分钟 数字
30
s 秒 数字
43
S 毫妙 数字
234
E 星期几 文本
Tuesday
D 一年中的第几天 数字
360
F 某月中的第几个星期几 数字
2
w 一年中的第几个星期 数字
40
W 一个月中的第几个星期 数字
1
a A.M./P.M.标记 文本
PM
k 24小时制的钟点(1~24) 数字
24
K A.M./P.M.制的钟点(0~11) 数字
0
z 时区 文本
Eastern
' 转义符 分隔符
'' 单引号 符号
'
这些符号是可以随意组合的,其中,显示形式为"文本"的符号,使用4个或以上的重复组合将输出长文本字符串,反之输出短字符串。
如:E产生Mon,而EEEE则产生Monday。对于显示形式为"文本和数字"的符号,两次以下包括两次的复用产生数字,而两次以上则产生文本。
另外,字符串模板不单可以在构造函数中使用,更可以在程序中动态的指定、变换。