私は、秒または類似のものを含めるようにDateFormat.SHORTを変更することはできますか?

StackOverflow https://stackoverflow.com/questions/1846059

  •  12-09-2019
  •  | 
  •  

質問

私のアプリケーションでは、私はこのようなコードを使用しています:

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

異なるロケール間で使用されるアプリケーションの日付の書式を設定します。私は、時々、これに秒を追加したいが、私はちょうど私がロケールベースのフォーマットの力を失うだろうとのSimpleDateFormatを使用して一つの特定の形式を指定する必要はありません。

だから、誰もがロケールフォーマットされた日付にマイナーチェンジを作成する方法任意のアイデアを得たか。

乾杯、

クリス

役に立ちましたか?

解決

私が見つけた唯一のストレートフォワードソリューションは、の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();

これは私がまっすぐにした後、秒を追加することができ、文字列の微小領域の位置を見つけることです。 「:」正しい区切りではないかもしれないし、それはすでにそれに秒を持っている可能性がある唯一の本当の問題は、私は離れて、それは少し醜いあることから、これを見ることができる、ということです。だから、誰もがより良い答えを見ることができますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top