I have a requirement to convert incoming date string format \"20130212\" (YYYYMMDD) to 12/02/2013 (DD/MM/YYYY)
using ThreadLocal. I know a way to do th
ThreadLocal in Java is a way to achieve thread-safety apart from writing immutable classes. Since SimpleDateFormat is not thread safe, you can use a ThreadLocal to make it thread safe.
class DateFormatter{
private static ThreadLocal outDateFormatHolder = new ThreadLocal() {
@Override
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat("MM/dd/yyyy");
}
};
private static ThreadLocal inDateFormatHolder = new ThreadLocal() {
@Override
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat("yyyyMMdd");
}
};
public static String formatDate(String date) throws ParseException {
return outDateFormatHolder.get().format(
inDateFormatHolder.get().parse(date));
}
}