[ https://issues.apache.org/jira/browse/LANG-916?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Christian P. MOMON updated LANG-916: ------------------------------------ Affects Version/s: (was: 3.3) > CLONE - DateFormatUtils.format does not correctly change Calendar TimeZone in > certain situations > ------------------------------------------------------------------------------------------------ > > Key: LANG-916 > URL: https://issues.apache.org/jira/browse/LANG-916 > Project: Commons Lang > Issue Type: Bug > Components: lang.time.* > Affects Versions: 3.1 > Environment: Sun JDK6, RHEL 5.3 > Reporter: Christian P. MOMON > Fix For: 2.5 > > > If a Calendar object is constructed in certain ways a call to > Calendar.setTimeZone does not correctly change the Calendars fields. Calling > Calenar.getTime() seems to fix this problem. While this is probably a bug in > the JDK, it would be nice if DateFormatUtils was smart enough to > detect/resolve this problem. > For example, the following unit test fails: > {noformat} > public void testFormat_CalendarIsoMsZulu() { > final String dateTime = "2009-10-16T16:42:16.000Z"; > // more commonly constructed with: cal = new GregorianCalendar(2009, 9, > 16, 8, 42, 16) > // for the unit test to work in any time zone, constructing with GMT-8 > rather than default locale time zone > GregorianCalendar cal = new > GregorianCalendar(TimeZone.getTimeZone("GMT-8")); > cal.clear(); > cal.set(2009, 9, 16, 8, 42, 16); > FastDateFormat format = > FastDateFormat.getInstance("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", > TimeZone.getTimeZone("GMT")); > assertEquals("dateTime", dateTime, format.format(cal)); > } > {noformat} > However, this unit test passes: > {noformat} > public void testFormat_CalendarIsoMsZulu() { > final String dateTime = "2009-10-16T16:42:16.000Z"; > GregorianCalendar cal = new > GregorianCalendar(TimeZone.getTimeZone("GMT-8")); > cal.clear(); > cal.set(2009, 9, 16, 8, 42, 16); > cal.getTime(); > FastDateFormat format = > FastDateFormat.getInstance("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", > TimeZone.getTimeZone("GMT")); > assertEquals("dateTime", dateTime, format.format(cal)); > } > {noformat} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira