tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From DJohn...@desknetinc.com
Subject Re: [OT] Parsing xs:dateTime values
Date Thu, 15 May 2008 16:27:32 GMT
One cautionary observation about the use of shared SimpleDateFormat 
instances:  they are not threadsafe. 
While it seems like a good idea to create these for various formats and 
hold them as class static or instance members, you need to do something to 
prevent threading issues.
I have run into problems using SimpleDateFormat in this way in a 
multiprocessor environment, which lead to using the following simple 
subclass instead:

public class SynchronizedSimpleDateFormat extends SimpleDateFormat {

  public SynchronizedSimpleDateFormat() {
    super();
  }

  public SynchronizedSimpleDateFormat(String arg0) {
    super(arg0);
  }

  public SynchronizedSimpleDateFormat(String arg0, DateFormatSymbols arg1) 
{
    super(arg0, arg1);
  }

  public SynchronizedSimpleDateFormat(String arg0, Locale arg1) {
    super(arg0, arg1);
  }

  // Note that we only need to synchronize this format method, as the 
others all use this one internally
  public synchronized StringBuffer format(Date arg0, StringBuffer arg1, 
FieldPosition arg2) {
    return super.format(arg0, arg1, arg2);
  }

  public synchronized Date parse(String arg0, ParsePosition arg1) {
    return super.parse(arg0, arg1);
  }

  public synchronized Date parse(String arg0) throws ParseException {
    return super.parse(arg0);
  }

} 



Please respond to "Tomcat Users List" <users@tomcat.apache.org>

To:     Tomcat Users List <users@tomcat.apache.org>
cc:      
Subject:        Re: [OT] Parsing xs:dateTime values


Hi,

You don't need regexp. Do you mean something like:

private static final String ISO8601_DATEFORMAT =
"yyyy-MM-dd'T'HH:mm:ss";

private static final java.text.SimpleDateFormat ISO8601 = new
java.text.SimpleDateFormat(
ISO8601_DATEFORMAT, java.util.Locale.US);


public static final Date getDateFromIso8601(final String iso8601)
throws ParseException {
return ISO8601.parse(iso8601);
}

best,
-Rob


On Thu, 2008-05-15 at 12:00 -0400, Christopher Schultz wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> All,
>
> I posted this on the commons-user mailing list, but I'm not getting any
> love. I'm cross-posting to see if anyone on this list might have any
> good ideas.
>
> | Hi, I'm looking for an implementation of a String->Date converter for
> | xs:dateTime, which has an odd format. It's not directly supportable by
> | java.text.SimpleDateFormat and looks like a regular expression is the
> | only way to go.
> |
> | Does anyone have an implementation they'd care to share, or any tips 
in
> | particular? I'd be glad to share whatever I come up with if there 
isn't
> | anything already out there.
>
> My existing implementation uses regular expressions, which seems a bit
> overkill.
>
> Thanks,
> - -chris
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (MingW32)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iEYEARECAAYFAkgsXdIACgkQ9CaO5/Lv0PAZawCffPNDLZ3bXczy89Cm1ptDzu1E
> va4AnRjfICMeUROWQGI40ts3CwZXtEOB
> =dDWw
> -----END PGP SIGNATURE-----
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org




Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message