【實(shí)例描述】
在輸出日期信息時(shí),經(jīng)常需要輸出不同格式的日期格式。本實(shí)例介紹了String 字符串中日期格式化方法,使用不同的方式輸出String 類的日期格式參數(shù)值,組合這些值實(shí)現(xiàn)特殊格式的日期字符串。實(shí)例的運(yùn)行效果如圖4.10 所示。
【實(shí)現(xiàn)過(guò)程】
在Eclipse 中新建項(xiàng)目DateString,并在其中創(chuàng)建一個(gè)DateString.java 文件。在該類的主方法中通過(guò)實(shí)例化的方法對(duì)當(dāng)前日期進(jìn)行實(shí)例化,然后再通過(guò)各種format()方法格式化today 日期對(duì)象。核心代碼如下所示:
public class DateString {public static void main(String[] args) {
Date today = new Date();
// 格式化后的字符串為月份的英文縮寫(xiě)
String a = String.format(Locale.US, "%tb", today);
System.out.println("格式化后的字符串為月份的英文縮寫(xiě): " + a);
// 格式化后的字符串為月份的英文全寫(xiě)
String b = String.format(Locale.US, "%tB", today);
System.out.println("格式化后的字符串為月份的英文縮寫(xiě): " + b);
// 格式化后的字符串為星期(如:星期一)
String c = String.format("%ta", today);
System.out.println("月格式化后的字符串為星期: " + c);
// 格式化后的字符串為星期(如:星期一)
String d = String.format("%tA", today);
System.out.println("格式化后的字符串為星期: " + d);
// 格式化后的字符串為4 位的年份值
String e = String.format("%tY", today);
System.out.println("格式化后的字符串為4 位的年份值: " + e);
// 格式化后的字符串為2 位的年份值
String f = String.format("%ty", today);
System.out.println("格式化后的字符串為2 位的年份值: " + f);
// 格式化后的字符串為2 位的月份值
String g = String.format("%tm", today);
System.out.println("格式化后的字符串為2 位的月份值: " + g);
// 格式化后的字符串為2 位的日期值
String h = String.format("%td", today);
System.out.println("格式化后的字符串為2 位的日期值: " + h);
}
}
【代碼解析】
使用String
類的format()方法不但可以完成日期的格式化,也可以實(shí)現(xiàn)時(shí)間的格式化。時(shí)間的格式化轉(zhuǎn)換符要比日期轉(zhuǎn)換符更多、更準(zhǔn)確,它甚至可以將時(shí)間格式化為時(shí)、分、秒、毫秒。
【知識(shí)擴(kuò)展】
在深入使用字符串之前,有一個(gè)概念一定要理解,那就是字符串是不可變的對(duì)象。理解了這個(gè)概念,對(duì)后面熟練使用字符串有很大的幫助。字符串的不可變性,意味著每當(dāng)對(duì)字符串進(jìn)行操作時(shí),都將產(chǎn)生一個(gè)新的字符串對(duì)象,如果頻繁的操作字符串對(duì)象,會(huì)在托管堆中產(chǎn)生大量的無(wú)用字符串,增加垃圾回收器的壓力,從而造成系統(tǒng)資源的浪費(fèi)。