「FastDateFormat」は、Commons Langのクラス。
SimpleDateFormatのスレッドセーフ対応版。

「fast」とあるが、内部キャッシュなどの工夫もあって
SimpleDateFormatより若干fast。

フィールドにはSimpleDateFormatを使っていけない

SimpleDateFormatは非スレッドセーフ。

にわかには信じがたいが、
高負荷をかけると例外を発生させることができる。
(JavaDocにも書いてある)

よって同じ変換を毎回する場合でも、
フィールドで保持するわけにはいけない。

これに対処するために、SimpleDateFormatのスレッドセーフ対応版として
FastDateFormatが存在する。

注意しておくこと

SimpleDateFormatより優れているFastDateFormatを無条件に使いたいが、
欠点もある。

  • 和暦に対応していない

残念だけど和暦としてフォーマットできない。

また、以前はparseに対応していなかったが
バージョン3.2以降はparseに対応している。

使い方

コンストラクタはprotectedになっているので、ファクトリメソッドを使って生成する。

private static final FastDateFormat format = FastDateFormat.getInstance("yyyy/M/d");

PR