2009-12-04 83 views
1

在我的應用我使用這樣的代碼:我可以改變DateFormat.SHORT以包括秒或類似的東西嗎?

DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale); 
df.setTimeZone(User.getTimeZone()); 
String s = df.format(d); 

在應用程序格式的日期是在不同的語言環境中使用。有時候,我想添加幾秒鐘,但我不想僅使用SimpleDateFormat指定一種特定格式,因爲我將失去基於區域設置的格式化的功能。

那麼,任何人有任何想法如何對區域設置格式的日期進行小改動?

乾杯,

克里斯

+1

也許喬達時間(http://joda-time.sourceforge.net/)可以幫助你滿足這兩個要求(不是'答案',因爲我從來沒有使用喬達時間,但大多數人都喜歡它) – 2009-12-04 10:40:11

+0

嗯,它似乎使用FieldPosition可能會有所幫助。 – 2009-12-04 11:20:51

+0

回覆:喬達時間 - 看起來不錯,我可能不得不在這個項目中進一步研究。謝謝。 – 2009-12-04 11:36:42

回答

0

唯一直接的解決方案,我發現是使用FieldPosition中:

DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale); 
df.setTimeZone(User.getTimeZone()); 
StringBuffer sb = new StringBuffer(); 
FieldPosition fp = new FieldPosition(DateFormat.MINUTE_FIELD); 
sb = df.format(d, sb, fp); 
sb.insert(fp.getEndIndex(), new SimpleDateFormat(":ss").format(d)); 
String s = sb.toString(); 

這是找到分鐘字段的字符串中的位置,然後讓我在它後面添加秒。我能看到的唯一真正的問題,除了它有點難看外,「:」可能不是正確的分隔符,它可能已經有秒。所以任何人都可以看到更好的答案?

相關問題