You could stick the instance in a ThreadLocal, that allows you to reuse it without worrying about concurrency.

Or you could use the Apache date parser.
Regards

Heinz
-- 
Dr Heinz M. Kabutz (PhD CompSci)
Author of "The Java(tm) Specialists' Newsletter"
Sun Java Champion
IEEE Certified Software Development Professional
http://www.javaspecialists.eu
Tel: +30 69 72 850 460
Skype: kabutz 


On 1/26/11 3:44 PM, Jason Purcell wrote:
I just read the same thing somewhere else now.

Always thought it was a good idea to re-use it, but I guess it's not.

Thanks for the info!!

I will implement the changes and see how things go.

On 26 January 2011 15:41, Bruce Stewart <[email protected]> wrote:
Hi Jason, the SimpleDateFormat class is not thread safe. If you were not aware of this you may have multiple threads accessing the the dateFormat instance, and this is exactly the sort of error that can occur.

On Wed, Jan 26, 2011 at 3:36 PM, Jason Purcell <[email protected]> wrote:
Hi there...

I am getting intermittent exceptions when parsing dates.

My formatter is declared as follows:

   SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
   dateFormat.setLenient(false);

These are some of the exceptions that have been thrown:

   java.text.ParseException: Unparseable date: "02/04/1980"
   java.text.ParseException: Unparseable date: "20/06/1985"
   java.text.ParseException: Unparseable date: "05/03/1990"
   java.text.ParseException: Unparseable date: "14/09/1973"
   java.text.ParseException: Unparseable date: "25/01/2011"
   java.text.ParseException: Unparseable date: "25/01/2011"
   java.text.ParseException: Unparseable date: "09/07/1965"
   java.text.ParseException: Unparseable date: "07/10/1974"
   java.text.ParseException: Unparseable date: "27/08/1966"

My unit tests pass when using the "unparseable" dates above, and in production dates parse correctly basically 99.999% of the time in the relevant piece of code.

As an example, the following dates parse correctly:

07/06/1978
14/06/1981
04/01/1988
03/10/1965
12/09/1977
30/01/1985

Has anyone come across this before?

Is there a problem with using SimpleDateFormat.setLenient() perhaps?

Regards,
Jason.


--
You received this message because you are subscribed to the Google Groups "CTJUG Tech" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/CTJUG-Tech?hl=en
For Cape Town Java User Group home page see http://www.ctjug.org.za/
For jobs see http://jobs.gamatam.com/

--
You received this message because you are subscribed to the Google Groups "CTJUG Tech" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/CTJUG-Tech?hl=en
For Cape Town Java User Group home page see http://www.ctjug.org.za/
For jobs see http://jobs.gamatam.com/

--
You received this message because you are subscribed to the Google Groups "CTJUG Tech" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/CTJUG-Tech?hl=en
For Cape Town Java User Group home page see http://www.ctjug.org.za/
For jobs see http://jobs.gamatam.com/



--
You received this message because you are subscribed to the Google Groups "CTJUG Tech" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/CTJUG-Tech?hl=en
For Cape Town Java User Group home page see http://www.ctjug.org.za/
For jobs see http://jobs.gamatam.com/

Reply via email to