Javaで日付を扱う際によくつかうSimpleDateFormatですが、このクラスはスレッドセーフじゃない
なにをいまさらと思う人もいるかもしれまへん、悲しいことに最近こいつせいでハマりました・・・。
スレッド乱立してバーバー流してると1950年とかぐちゃぐちゃの日付がくることがあって調べてみたらこういう次第でした
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public String getDate() {
return sdf.format(new Date());
}
これを、
private final String pattern = "yyyy-MM-dd HH:mm:ss";
public String getDate() {
return new SimpleDateFormat(pattern).format(new Date());
}
こうや