2013-02-06 56 views
1

java.text.SimpleDateFormat畢竟是java.text.DateFormat的實現。日期格式的此實現可以瞭解以下模式字母除了java.text.SimpleDateFormat還有java.text.DateFormat的其他實現嗎?

G Era designator 
y Year 
M Month in year 
w Week in year 
W Week in month 
D Day in year 
d Day in month 
F Day of week in month 
E Day in week 
a Am/pm marker 
H Hour in day (0-23) 
k Hour in day (1-24) 
K Hour in am/pm (0-11) 
h Hour in am/pm (1-12) 
m Minute in hour 
s Second in minute 
S Millisecond 
z Time zone 
Z Time zone 

是否有java.text.DateFormat中的任何其他實現,通過它可以瞭解其他一些模式信集團?如果有的話,請讓我知道。

+0

我想你可以使用DateFormat類自己推出自己的產品。 –

+1

'Apache commons'具有'FastDateFormat'實現。雖然它不是jdk DateFormat的後代,但它具有類似的功能並且是線程安全的。 (http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/time/FastDateFormat.html) –

回答

0

IBM's ICU projectjava.text.SimpleDateFormat的替代類。你可以看看那個。但這僅僅是一個替代課程,與java.text.SimpleDateFormat課無關。

+0

我使用自己的java.text.DateFormat的子類來委託給ICU。你得到兩全其美。 –

2

java.text.SimpleDateFormat是擴展java.text.DateFormat的唯一公開的JDK類;但是,不能保證DateFormat的工廠方法(例如getDateInstance())必然會返回java.text.SimpleDateFormat。他們可以返回由JDK實現提供的其他類的實例。 (即使在這種情況下,我也不確定其他類會「理解其他模式字母組」,相反,我會猜想如果語言環境具有日期解析,則更可能發生這種情況和–格式化需要的是更復雜的是什麼簡單的文本模式可以提供,而不是語言環境需要不同模式,但誰知道)

由於the Javadoc for java.text.DateFormat所言:?

如果你想甚至可以更多地控制格式或解析,(或者想給用戶更多控制權),您可以嘗試投射DateFormat你從工廠方法到SimpleDateFormat。這對大多數國家都有效;只要記得把它放在try區塊中,以防遇到異常情況。

如果需要,您可以使用自己的日期格式子類來擴展DateFormat。它的構造函數是protected,而不是包私有的,所以你可以自由地繼承它。

相關問題