Use a ThreadLocal to manage a pool of date formatters instead of creating a new date formatter per execution