2012-11-25 134 views
3

Java的SimpleDateFormat用於將Date對象格式化爲字符串。格式器支持各種模式字母,它們表示日期字段的文本表示。例如,yy是兩個字母年,yyyy是四個字母年,而E是星期幾。Java:用新模式字母擴展SimpleDateFormat

例如,用yyyy.MM.dd G 'at' HH:mm:ss z初始化的A SimpleDateFormat將格式化日期到類似2001.07.04 AD at 12:08:56 PDT之類的東西。

我想添加一些模式字母到SimpleDateFormat。例如,希望C表示希伯來語工作日(יום ראשון,יום שני,...)。

用這些新的模式字母來擴展SimpleDateFormat的正確方法是什麼?唯一的在線例子,我可以找到seems somewhat complicated。我只能使用格式,而不解析。

回答

1

從我可以告訴SDF不是可擴展的,所以每個日曆字段格式化是硬編碼到一個方法:(我會做什麼是我會創建一個包裝對象和檢測特殊(由我字符處理)和格式輸出我自己的混合格式我會將格式分成前後格式字符,並將它們傳遞給原始SDF,然後將結果粘合在一起。

3

E已經可以用來獲取星期幾。如果你想在希伯來語中使用,那麼initialize the SimpleDateFormat instance with the hebrew locale

+0

我可以添加不屬於希伯來文語言環境的自定義名稱嗎? –

+0

是的。你可以得到日期格式symb用於希伯來語語言環境的ols,使用您自己的日期覆蓋星期幾,然後使用這些日期格式符號構造日期格式。請參閱http://docs.oracle.com/javase/6/docs/api/java/text/DateFormatSymbols.html –

+0

這很棒。有沒有辦法添加新的符號,替換現有的符號?有兩種以上的方式來顯示希伯來語的週日(א',יוםא',יוםראשון)。 –