Ugly optimized caching of SimpleDateFormat
What about using a WeakHashMap?  The memory leak is not really an issue since the memory can be reclaimed at any time.

Also, if I were using a map, I would define a FormatAndLocale util class, with valid hashCode and equals, to be used as keys.