Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
1.6.16
-
None
-
Java runtimes running under the th_TH locale
We experienced it on Windows but it should be OS independent.
Description
In Thai, they seem to be using the Buddhist calendar and JRE defaults to using it. And the SimpleDateFormatter ctor which takes only a pattern uses the default locale to see which calendar system to use.
http://docs.oracle.com/javase/7/docs/technotes/guides/intl/calendar.doc.html
http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
You can see how the API works like this:
>jrunscript -J-Duser.language=th -J-Duser.country=TH -e "println( new java.text.SimpleDateFormat('yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'').parse('2014-01-01T00:00:00.000Z').toString() )"
Tue Jan 01 00:00:00 JST 1471
On the other hand, org.apache.ws.security.util.XmlSchemaDateFormat.parse() always expects the Gregorian calendar is used. If that is the case, it should have configured the formatter with a fixed locale regardless of the default locale.