大家在使用Date對(duì)象輸出日期字符串表示的時(shí)候,大多會(huì)遇見一些不算困難的困難。說(shuō)他不算困難是因?yàn)椋蠹也皇遣粫?huì)做,只是一般繁瑣的轉(zhuǎn)化工作使人很煩惱,而大多數(shù)人不太原意考慮。有些人可能對(duì)這方面有所了解,但可能也不夠充分,所以我在這里把我所知道的寫出來(lái),一來(lái)供大家參考,二來(lái)也算是拋磚引玉,希望能有更多的人討論這個(gè)話題。
在JAVA中有一個(gè)很有用的類:SimpleDateFormat,它使用模板方法以文本形式格式化輸出日期對(duì)象。一般的用法如下:
SimpleDateFormat f=new SimpleDateFormat("MMM dd,yyyy");
f.format(new Date());
構(gòu)造SimpleDateFormat使用的字符串就是模扳。這個(gè)模扳的表示即
為"February 21th, 2004"的式樣。
其他模扳符號(hào)定義為:
符號(hào) 意義 顯示形式
舉例
G 公元 文本
AD
y 年份 數(shù)字
2001
M 月 文本或數(shù)字
July或07
d 日 數(shù)字
10
h A.M./P.M.制的鐘點(diǎn)(1~12) 數(shù)字
12
H 24小時(shí)制的鐘點(diǎn)(0~23) 數(shù)字
0
m 分鐘 數(shù)字
30
s 秒 數(shù)字
43
S 毫妙 數(shù)字
234
E 星期幾 文本
Tuesday
D 一年中的第幾天 數(shù)字
360
F 某月中的第幾個(gè)星期幾 數(shù)字
2
w 一年中的第幾個(gè)星期 數(shù)字
40
W 一個(gè)月中的第幾個(gè)星期 數(shù)字
1
a A.M./P.M.標(biāo)記 文本
PM
k 24小時(shí)制的鐘點(diǎn)(1~24) 數(shù)字
24
K A.M./P.M.制的鐘點(diǎn)(0~11) 數(shù)字
0
z 時(shí)區(qū) 文本
Eastern
' 轉(zhuǎn)義符 分隔符
'' 單引號(hào) 符號(hào)
'
這些符號(hào)是可以隨意組合的,其中,顯示形式為"文本"的符號(hào),使用4個(gè)或以上的重復(fù)組合將輸出長(zhǎng)文本字符串,反之輸出短字符串。
如:E產(chǎn)生Mon,而EEEE則產(chǎn)生Monday。對(duì)于顯示形式為"文本和數(shù)字"的符號(hào),兩次以下包括兩次的復(fù)用產(chǎn)生數(shù)字,而兩次以上則產(chǎn)生文本。
另外,字符串模板不單可以在構(gòu)造函數(shù)中使用,更可以在程序中動(dòng)態(tài)的指定、變換。