在java中使用DateFormat類(國際化日期)將日期格式化:
DateFormat 類可以將一個日期/時間對象格式化爲表示某個國家地區的日期/時間字符串。
DateFormat 類除了可按國家地區格式化輸出日期外,它還定義了一些用於描述日期/時間的顯示模式的 int 型的常量,包括FULL, LONG, MEDIUM,DEFAULT, SHORT,實例化DateFormat對象時,可以使用這些常量,控制日期/時間的顯示長度。
DateFormat的幾種顯示模式:
SHORT模式完全是數字的,在中文環境下顯示爲“05-9-15下午4:41”;在英文環境下爲“9/15/05 4:41 PM”。
MEDIUM模式比SHORT模式長些,在中文環境顯示爲“2005-9-15 16:41:20”;在英文環境下顯示爲“Sep 15, 2005 4:41:20 PM”。
LONG模式比MEDIUM模式更長一些,在中文環境下顯示爲“2005年9月15日 下午04時41分20秒”;在英文環境下顯示爲“September 15, 2005 4:41:20 PM CST”。
FULL模式指定日期/時間的完整格式,在中文環境下顯示爲“2005年9月15日 星期四 下午04時41分20秒 CST”;在英文環境下,這個日期/時間顯示爲“Thursday, September 15, 2005 4:41:20 PM CST”。
實例化DateFormat類
getDateInstance(int style, LocaleaLocale):以指定的日期顯示模式和本地信息來獲得DateFormat實例對象,該實例對象不處理時間值部分。
getTimeInstance(int style, LocaleaLocale):以指定的時間顯示模式和本地信息來獲得DateFormat實例對象,該實例對象不處理日期值部分。
getDateTimeInstance(intdateStyle, int timeStyle, Locale aLocale):以單獨指定的日期顯示模式、時間顯示模式和本地信息來獲得DateFormat實例對象。
DateFormat 對象的方法:
format: 將日期/時間對象格式化爲符合某個本地環境習慣的字符串。
parse:將符合某個本地環境習慣的日期/時間字符串解析爲日期/時間對象
注意:parse和format完全相反,一個是把date時間轉化爲相應地區和國家的顯示樣式,一個是把相應地區的時間日期轉化成date對象,該方法在使用時,解析的時間或日期要符合指定的國家、地區格式,否則會拋異常。
DateFormat對象通常不是線程安全的,每個線程都應該創建自己的 DateFormat 實例對象
例如:
(1)、創建一個date對象,並把date對象中表示日期部分的時間值,以及表示時間部分的時間值,分別以short、long模式進行格式化輸出(國家設置爲中國)
//獲取時間值
Date date = new Date();
String dateStr = date.toString();
System.out.println("獲取時間:" +dateStr);
//date和time值按照short模式格式化輸出
DateFormat shortDF = DateFormat.getDateTimeInstance(SimpleDateFormat.SHORT,SimpleDateFormat.SHORT,Locale.CHINA);
System.out.println("short模式的時間:" + shortDF.format(date));
//date和time值按照long模式格式化輸出
DateFormat longDF = DateFormat.getDateTimeInstance(SimpleDateFormat.LONG,SimpleDateFormat.LONG,Locale.CHINA);
System.out.println("long模式的時間:" + longDF.format(date));
(2)、將時間值:09-11-28 上午10時25分39秒 CST,反向解析成一個date對象
String str = "09-11-28 上午10時25分39秒 CST";
String dateStr = str.toString();
System.out.println(dateStr);
//反向解析
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.FULL,Locale.CHINESE);
String dateS = df.parse(dateStr).toString();
System.out.println("反向解析出的結果:" + dateS);
使用標籤實現日期格式化:
日期格式化<fmt:formatDatevalue=“” pattern=“” dateStyle="" timeStyle=" " type=" "/>
value:要格式化的日期
pattern:日期格式化的格式
如:
//date和time值按照short模式格式化輸出
<fmt:formatDate value="<%=new Date() %>" dateStyle="short"timeStyle="short" type="both"/><br>
//date和time值按照long模式格式化輸出
<fmt:formatDate value="<%=new Date() %>" dateStyle="long"timeStyle="long" type="both"/>