我們可能希望以某種習慣來輸出時間,例如時間的順序:年月星期日或年月星期日小時分秒。
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());
常用的日期格式符: