Re: [問題] DateFormat.format 與 FieldPosition
※ 引述《kikiapple (KiKi蘋果)》之銘言:
: DateFormat.format 可以指定 FieldPosition 來取得產生字串中特定欄位的位置。
: 例如
: FieldPosition fp = new FieldPosition(Field.DAY_OF_MONTH);
: DateFormat.format(date, buffer, fp);
: 這時 fp.beginIndex 與 fp.endIndex 就會存放產生字串中 天 的所在位置。
: 但是這個 FieldPosition 一次只能指定一個。
: 如果我想要取得 年 月 日 三個欄位的位置,就得寫成
: FieldPosition fp1 = new FieldPosition(Field.YEAR);
: FieldPosition fp2 = new FieldPosition(Field.MONTH);
: FieldPosition fp3 = new FieldPosition(Field.DAY_OF_MONTH);
: DateFormat.format(date, buffer, fp1);
: DateFormat.format(date, new StringBuffer(), fp2);
: DateFormat.format(date, new StringBuffer(), fp3);
: 數據是有了,但日期字串被 format 三次,不太經濟,感覺也很怪。
: 有比較合理的其他寫法嗎?
要取 formatted string 的多個欄位,應使用 formatToCharacterIterator
method。
http://java.sun.com/javase/6/docs/api/java/text/Format.html#formatToCharacterIterator(java.lang.Object)
另外,既然你不要整個 format 之後的字串,其實你可以考慮使用
java.text.SimpleDateFormat 做出你要的格式,而不是 format 出一個很長的
字串然後去擷取幾個片段再來組合成你想要的格式。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.131.138
推
02/02 19:22, , 1F
02/02 19:22, 1F
→
02/02 19:24, , 2F
02/02 19:24, 2F
→
02/02 19:25, , 3F
02/02 19:25, 3F
→
02/02 19:29, , 4F
02/02 19:29, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):