|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.text.Format java.text.DateFormat
public abstract class DateFormat
DateFormat 是日期/時間格式化子類別的抽象類別,它以與語言無關的方式格式化並解析日期或時間。日期/時間格式化子類別(如 SimpleDateFormat)允許進行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和標準化。將日期表示為 Date
物件,或者表示為從 GMT(格林尼治標準時間)1970 年 1 月 1 日 00:00:00 這一刻開始的毫秒數。
DateFormat 提供了很多類別方法,以獲得基於預設或給定語言環境和多種格式化樣式的預設日期/時間 Formatter。格式化樣式包括 FULL、LONG、MEDIUM 和 SHORT。方法描述中提供了使用這些樣式的更多細節和範例。
DateFormat 可說明進行格式化並解析任何語言環境的日期。對於月、星期,甚至日曆格式(陰曆和陽曆),其程式碼可完全與語言環境的約定無關。
要格式化一個當前語言環境下的日期,可使用某個靜態處理器方法:
myString = DateFormat.getDateInstance().format(myDate);
如果格式化多個日期,那麼獲取該格式並多次使用它是更為高效的做法,這樣系統就不必多次獲取有關環境語言和國家/地區約定的資訊了。
DateFormat df = DateFormat.getDateInstance(); for (int i = 0; i < myDate.length; ++i) { output.println(df.format(myDate[i]) + "; "); }
要格式化不同語言環境的日期,可在 getDateInstance() 的調用中指定它。
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);
還可使用 DateFormat 進行解析。
myDate = df.parse(myString);
使用 getDateInstance 來獲取該國家/地區的標準日期格式。另外還提供了一些其他靜態處理器方法。使用 getTimeInstance 可獲取該國家/地區的時間格式。使用 getDateTimeInstance 可獲取日期和時間格式。可以將不同選項傳入這些處理器方法,以控制結果的長度(從 SHORT 到 MEDIUM 到 LONG 再到 FULL)。確切的結果取決於語言環境,但是通常:
如果願意,還可以在格式上設置時區。如果想對格式化或解析施加更多的控制(或者給予使用者更多的控制),可以嘗試將從處理器方法所獲取的 DateFormat 強制轉換為 SimpleDateFormat。這適用於大多數國家/地區;只是要記住將其放入一個 try 程式碼塊中,以防遇到特殊的格式。
還可以使用借助 ParsePosition 和 FieldPosition 的解析和格式化方法形式來
日期格式不是同步的。建議為每個執行緒創建獨立的格式實例。如果多個執行緒同時存取一個格式,則它必須保持外部同步。
Format
,
NumberFormat
,
SimpleDateFormat
,
Calendar
,
GregorianCalendar
,
TimeZone
,
序列化表格巢狀類別摘要 | |
---|---|
static class |
DateFormat.Field
定義了各種常數,這些常數用作 DateFormat.formatToCharacterIterator 所返回的 AttributedCharacterIterator 中的屬性鍵和 FieldPosition 中的欄位標識符。 |
欄位摘要 | |
---|---|
static int |
AM_PM_FIELD
用於對齊 AM_PM 欄位的有用常數。 |
protected Calendar |
calendar
DateFormat 使用 calendar 來產生實作日期和時間格式化所需的時間欄位值。 |
static int |
DATE_FIELD
用於對齊 DATE 欄位的有用常數。 |
static int |
DAY_OF_WEEK_FIELD
用於對齊 DAY_OF_WEEK 欄位的有用常數。 |
static int |
DAY_OF_WEEK_IN_MONTH_FIELD
用於對齊 DAY_OF_WEEK_IN_MONTH 欄位的有用常數。 |
static int |
DAY_OF_YEAR_FIELD
用於對齊 DAY_OF_YEAR 欄位的有用常數。 |
static int |
DEFAULT
用於預設網要的常數。 |
static int |
ERA_FIELD
用於對齊 ERA 欄位的有用常數。 |
static int |
FULL
用於 FULL 網要的常數。 |
static int |
HOUR_OF_DAY0_FIELD
用於對齊從 0 開始的 HOUR_OF_DAY 欄位的有用常數。 |
static int |
HOUR_OF_DAY1_FIELD
用於對齊從 1 開始的 HOUR_OF_DAY 欄位的有用常數。 |
static int |
HOUR0_FIELD
用於對齊從 0 開始的 HOUR 欄位的有用常數。 |
static int |
HOUR1_FIELD
用於對齊從 1 開始的 HOUR 欄位的有用常數。 |
static int |
LONG
用於 LONG 網要的常數。 |
static int |
MEDIUM
用於 MEDIUM 網要的常數。 |
static int |
MILLISECOND_FIELD
用於對齊 MILLISECOND 欄位的有用常數。 |
static int |
MINUTE_FIELD
用於對齊 MINUTE 欄位的有用常數。 |
static int |
MONTH_FIELD
用於對齊 MONTH 欄位的有用常數。 |
protected NumberFormat |
numberFormat
數字格式器, DateFormat 用其來格式化日期和時間中的數字。 |
static int |
SECOND_FIELD
用於對齊 SECOND 欄位的有用常數。 |
static int |
SHORT
用於 SHORT 網要的常數。 |
static int |
TIMEZONE_FIELD
用於對齊 TIMEZONE 欄位的有用常數。 |
static int |
WEEK_OF_MONTH_FIELD
用於對齊 WEEK_OF_MONTH 欄位的有用常數。 |
static int |
WEEK_OF_YEAR_FIELD
用於對齊 WEEK_OF_YEAR 欄位的有用常數。 |
static int |
YEAR_FIELD
用於對齊 YEAR 欄位的有用常數。 |
建構子摘要 | |
---|---|
protected |
DateFormat()
創建一個新的 DateFormat。 |
方法摘要 | |
---|---|
Object |
clone()
覆寫 Cloneable |
boolean |
equals(Object obj)
覆寫 equals |
String |
format(Date date)
將一個 Date 格式化為日期/時間字元串。 |
abstract StringBuffer |
format(Date date,
StringBuffer toAppendTo,
FieldPosition fieldPosition)
將一個 Date 格式化為日期/時間字元串。 |
StringBuffer |
format(Object obj,
StringBuffer toAppendTo,
FieldPosition fieldPosition)
覆寫 Format。 |
static Locale[] |
getAvailableLocales()
返回所有語言環境的陣列,此類別的 get*Instance 方法可以為其返回已本地化的實例。 |
Calendar |
getCalendar()
獲取與此日期/時間格式器關聯的日曆。 |
static DateFormat |
getDateInstance()
獲取日期格式器,該格式器具有預設語言環境的預設格式化樣式。 |
static DateFormat |
getDateInstance(int style)
獲取日期格式器,該格式器具有預設語言環境的給定格式化樣式。 |
static DateFormat |
getDateInstance(int style,
Locale aLocale)
獲取日期格式器,該格式器具有給定語言環境的給定格式化樣式。 |
static DateFormat |
getDateTimeInstance()
獲取日期/時間格式器,該格式器具有預設語言環境的預設格式化樣式。 |
static DateFormat |
getDateTimeInstance(int dateStyle,
int timeStyle)
獲取日期/時間格式器,該格式器具有預設語言環境的給定日期和時間格式化樣式。 |
static DateFormat |
getDateTimeInstance(int dateStyle,
int timeStyle,
Locale aLocale)
獲取日期/時間格式器,該格式器具有給定語言環境的給定格式化樣式。 |
static DateFormat |
getInstance()
獲取為日期和時間使用 SHORT 樣式的預設日期/時間格式器。 |
NumberFormat |
getNumberFormat()
獲取此日期/時間格式器用於格式化和解析時間的數字格式器。 |
static DateFormat |
getTimeInstance()
獲取時間格式器,該格式器具有預設語言環境的預設格式化樣式。 |
static DateFormat |
getTimeInstance(int style)
獲取時間格式器,該格式器具有預設語言環境的給定格式化樣式。 |
static DateFormat |
getTimeInstance(int style,
Locale aLocale)
獲取時間格式器,該格式器具有給定語言環境的給定格式化樣式。 |
TimeZone |
getTimeZone()
獲取時區。 |
int |
hashCode()
覆寫 hashCode |
boolean |
isLenient()
判斷日期/時間解析是否為不嚴格的。 |
Date |
parse(String source)
從給定字元串的開始解析文本,以產生一個日期。 |
abstract Date |
parse(String source,
ParsePosition pos)
根據給定的解析位置開始解析日期/時間字元串。 |
Object |
parseObject(String source,
ParsePosition pos)
解析字元串中的文本,以產生一個 Date 。 |
void |
setCalendar(Calendar newCalendar)
設置此日期格式所使用的日曆。 |
void |
setLenient(boolean lenient)
指定日期/時間解析是否不嚴格。 |
void |
setNumberFormat(NumberFormat newNumberFormat)
允許使用者設置數字格式器。 |
void |
setTimeZone(TimeZone zone)
為此 DateFormat 物件的日曆設置時區。 |
從類別 java.text.Format 繼承的方法 |
---|
format, formatToCharacterIterator, parseObject |
從類別 java.lang.Object 繼承的方法 |
---|
finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
欄位詳細資訊 |
---|
protected Calendar calendar
DateFormat
使用 calendar 來產生實作日期和時間格式化所需的時間欄位值。子類別應將此 calendar 初始化為適合於與此 DateFormat
關聯的語言環境的日曆。
protected NumberFormat numberFormat
DateFormat
用其來格式化日期和時間中的數字。子類別應將此數字格式器初始化為適合於與此 DateFormat
關聯的語言環境的數字格式。
public static final int ERA_FIELD
public static final int YEAR_FIELD
public static final int MONTH_FIELD
public static final int DATE_FIELD
public static final int HOUR_OF_DAY1_FIELD
public static final int HOUR_OF_DAY0_FIELD
public static final int MINUTE_FIELD
public static final int SECOND_FIELD
public static final int MILLISECOND_FIELD
public static final int DAY_OF_WEEK_FIELD
public static final int DAY_OF_YEAR_FIELD
public static final int DAY_OF_WEEK_IN_MONTH_FIELD
public static final int WEEK_OF_YEAR_FIELD
public static final int WEEK_OF_MONTH_FIELD
public static final int AM_PM_FIELD
public static final int HOUR1_FIELD
public static final int HOUR0_FIELD
public static final int TIMEZONE_FIELD
public static final int FULL
public static final int LONG
public static final int MEDIUM
public static final int SHORT
public static final int DEFAULT
建構子詳細資訊 |
---|
protected DateFormat()
方法詳細資訊 |
---|
public final StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition fieldPosition)
Format
中的 format
obj
- 必須為 Number 或 Date。toAppendTo
- 用於返回的時間字元串的字元串緩衝區。fieldPosition
- 追蹤返回字元串中欄位的位置。輸入時:如果需要,是一個對齊欄位。輸出時:對齊欄位的偏移量。例如,在給定時間文本 "1996.07.10 AD at 15:08:56 PDT" 的情況下,如果給定的 fieldPosition 是 DateFormat.YEAR_FIELD,則將 fieldPosition 的開始索引和結束索引分別設置為 0 和 4。注意,如果在一個網要中多次出現同一時間欄位,則為第一次出現的該時間欄位設置 fieldPosition。例如,使用網要 "h a z (zzzz)" 和對齊欄位 DateFormat.TIMEZONE_FIELD 將某個 Date 格式化為時間字元串 "1 PM PDT (Pacific Daylight Time)" 時,針對時區網要字元 'z' 的首個比對項,將 fieldPosition 的開始索引和結束索引分別設置為 5 和 8。
Format
public abstract StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition)
date
- 要格式化為日期/時間字元串的 Date。toAppendTo
- 用於返回的日期/時間字元串的字元串緩衝區。fieldPosition
- 追蹤返回字元串中欄位的位置。輸入時:如果需要,是一個對齊欄位。輸出時:對齊欄位的偏移量。例如,在給定時間文本 "1996.07.10 AD at 15:08:56 PDT" 的情況下,如果給定的 fieldPosition 是 DateFormat.YEAR_FIELD,則將 fieldPosition 的開始索引和結束索引分別設置為 0 和 4。注意,如果在一個網要中多次出現同一時間欄位,則為該時間欄位的首個比對項設置 fieldPosition。例如,使用網要 "h a z (zzzz)" 和對齊欄位 DateFormat.TIMEZONE_FIELD 將某個 Date 格式化為時間字元串 "1 PM PDT (Pacific Daylight Time)" 時,針對時區網要字元 'z' 的首個比對項,將 fieldPosition 的開始索引和結束索引分別設置為 5 和 8。
public final String format(Date date)
date
- 要格式化為時間字元串的時間值。
public Date parse(String source) throws ParseException
有關日期解析的更多資訊,請參閱 parse(String, ParsePosition)
方法。
source
- 一個 String
,應從其開始處進行解析。
Date
。
ParseException
- 如果無法解析指定字元串的開始處。public abstract Date parse(String source, ParsePosition pos)
在預設情況下,進行的解析是不嚴格的:如果輸入的形式不是此物件的格式化方法使用的形式,但仍可作為日期進行解析,則解析將獲得成功。客戶端可能通過調用 setLenient(false) 來強調嚴格遵守該格式。
source
- 要解析的日期/時間字元串pos
- 輸入時,是開始進行解析的位置;輸出時,是解析終止的位置,如果解析失敗,則為開始位置。
setLenient(boolean)
public Object parseObject(String source, ParsePosition pos)
Date
。
該方法試圖從 pos
所給定的索引處開始解析文本。如果解析成功,則將 pos
的索引更新為所用最後一個字元後面的索引(解析過程不一定使用到字元串末尾為止的所有字元),並返回解析得到的日期。可以使用更新後的 pos
指示下一次調用此方法的開始點。如果發生錯誤,則不更改 pos
的索引,並將 pos
的錯誤索引設置為發生錯誤處的字元索引,並且返回 null。
有關日期解析的更多資訊,請參閱 parse(String, ParsePosition)
方法。
Format
中的 parseObject
source
- 一個 String
,應解析其中的部分內容。pos
- 具有索引和上述錯誤索引資訊的 ParsePosition
物件。
Date
。在出現錯誤的情況下返回 null。
NullPointerException
- 如果 pos
為 null。public static final DateFormat getTimeInstance()
public static final DateFormat getTimeInstance(int style)
style
- 給定的格式化樣式。例如,SHORT 用於 US 語言環境中的 "h:mm a"。
public static final DateFormat getTimeInstance(int style, Locale aLocale)
style
- 給定的格式化樣式。例如,SHORT 用於 US 語言環境中的 "h:mm a"。aLocale
- 給定的語言環境。
public static final DateFormat getDateInstance()
public static final DateFormat getDateInstance(int style)
style
- 給定的格式化樣式。例如,SHORT 用於 US 語言環境中的 "M/d/yy"。
public static final DateFormat getDateInstance(int style, Locale aLocale)
style
- 給定的格式化樣式。例如,SHORT 用於 US 語言環境中的 "M/d/yy"。aLocale
- 給定的語言環境。
public static final DateFormat getDateTimeInstance()
public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle)
dateStyle
- 給定的日期格式化樣式。例如,SHORT 用於 US 語言環境中的 "M/d/yy"。timeStyle
- 給定的時間格式化樣式。例如,SHORT 用於 US 語言環境中的 "h:mm a"。
public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)
dateStyle
- 給定的日期格式化樣式。timeStyle
- 給定的時間格式化樣式。aLocale
- 給定的語言環境。
public static final DateFormat getInstance()
public static Locale[] getAvailableLocales()
get*Instance
方法可以為其返回已本地化的實例。返回的陣列代表 Java 運行時和已安裝的 DateFormatProvider
實作所支持的語言環境的聯合。它至少必須包含一個等同於 Locale.US
的 Locale
實例。
DateFormat
實例。public void setCalendar(Calendar newCalendar)
newCalendar
- 該日期格式所使用的新 Calendarpublic Calendar getCalendar()
public void setNumberFormat(NumberFormat newNumberFormat)
newNumberFormat
- 給定的新 NumberFormat。public NumberFormat getNumberFormat()
public void setTimeZone(TimeZone zone)
zone
- 給定的新時區。public TimeZone getTimeZone()
public void setLenient(boolean lenient)
lenient
- 為 true 時,解析過程是不嚴格的Calendar.setLenient(boolean)
public boolean isLenient()
public int hashCode()
Object
中的 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
Object
中的 equals
obj
- 要與之比較的參考物件。
true
;否則返回 false
。Object.hashCode()
,
Hashtable
public Object clone()
Format
中的 clone
Cloneable
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。