Is SimpleDateFormat threadsafe? I am trying totrack down a bug where a date formatted “yyyy-MM-dd” actually came outas 2000-06-0001. I have four threads accessing the format method ofmy date formatter class at approximately the same time.
SimpleDateFormat is not threadsafe. The general rule to follow isthat if the API documentation does not state that a class or method isthreadsafe, then you must assume it isn’t. Whenever you shareresources between threads, you should protect those resources withsynchronized blocks if you are unsure as to whether or not theyalready protect themselves. When it comes to the core APIs, youcan always look at the Java source code that comes with the JDK toverify. However, just because the source is thread safe does notmean that the class is required to be thread safe. Unfortunately,the Java Platform specification process is not so rigorous as to tellyou how each and every standard class is supposed to behave, forcing youto rely on the javadocs as an ill-substitute for a more formalspecification.