wicket-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andera Del Bene (JIRA)" <j...@apache.org>
Subject [jira] Updated: (WICKET-3249) DateConverter improperly converts time, causing different results between DateField and DateTimeField
Date Sun, 19 Dec 2010 16:30:02 GMT

     [ https://issues.apache.org/jira/browse/WICKET-3249?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Andera Del Bene updated WICKET-3249:

    Attachment: DatePickerTest.java

> DateConverter improperly converts time, causing different results between DateField and
> -----------------------------------------------------------------------------------------------------
>                 Key: WICKET-3249
>                 URL: https://issues.apache.org/jira/browse/WICKET-3249
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket-datetime
>    Affects Versions: 1.4.6
>            Reporter: Tauren Mills
>            Priority: Minor
>         Attachments: DatePickerTest.java, fix-WICKET-DateConverter.patch, TestDateConverter.java
> With a DateTimeField and a DateField in a wicket form, submit the following:
> DateTimeField:     [   11/06/2010  ] date,  [ 0 ] hour,  [ 0 ] min
> DateField:              [   11/06/2010  ] date
> Those should result in the same value. But look at the converted Date values, and you'll
see this:
> dateTimeField:   2010-11-06T07:00:00Z
> dateField:  2010-11-06T23:00:00Z
> The dateTimeField value is what I'd expect - the UTC value of midnight in my timezone
on 11/6/2010.  It look like dateField is just wrong and that DateConverter isn't dealing with
timezone conversions properly. Here's the scenario:
> * Server OS, Java, and Database are all configured to use UTC timezone.
> * Web client is configured in America/Los_Angeles timezone (currently UTC-08:00, or PST).
> * Currently logged in member has profile configured to use America/Los_Angeles timezone.
> * Application WebClientInfo has timezone set from the user's profile, like such:
>     		ClientInfo ci = Session.get().getClientInfo();
>     		((WebClientInfo)ci).getProperties().setTimeZone(TimeZone.getTimeZone(member.getTimezone()));
> Anywhere that dates are handled in the application with DateLabel or DateTimeField, they
seem to be properly converted by Wicket to and from America/Los_Angeles time to UTC time for
storage in the database. Examining the database shows a 7 or 8 hour difference between the
time in the UI and the time in the database (depending on DST or not).
> However, when using org.apache.wicket.extensions.yui.calendar.DateField, dates are getting
converted/persisted incorrectly. I just traced through DateConverter.convertToObject() to
see what was happening. Assume it is currently 2010-12-10 00:43 PST(-8). My client timezone
is set to PST (-8), as is my profile timezone. I specify 2010-11-06 in the DateField. It does
> 1. Creates a Joda value using DateMidnight right now in UTC (the date/time right now
in UTC, setting the time portion to midnight UTC. This will be a time before now, not after
now, as midnight is the first instant of a day, not the last instant of a day). 2010-12-10T00:00:00Z
> 2. Converts this Joda value to the client's timezone.  2010-12-09T16:00:00-08:00
> 3. Joda parses the submitted text value into the Joda value.  2010-11-06T16:00:00-07:00
> 4. Converts the Joda value to the server's timezone.  2010-11-06T23:00:00Z
> The value should result in 2010-11-06T07:00:00Z, which converts to 2010-11-06T00:00:00-08:00,
or midnight on 11/6 in the PST timezone, but it doesn't. Or am I missing something and there
is a reason for this? It seems like a bug to me.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message