Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.5-RC2
Description
The bug is in DateTimeField#convertInput().
<code>
// Get year, month and day ignoring any timezone of the Date object
Calendar cal = Calendar.getInstance();
cal.setTime(dateFieldInput);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int day = cal.get(Calendar.DAY_OF_MONTH);
int hours = (hoursInput == null ? 0 : hoursInput % 24);
int minutes = (minutesInput == null ? 0 : minutesInput);
// Use the input to create a date object with proper timezone
MutableDateTime date = new MutableDateTime(year, month, day, hours, minutes, 0, 0,
DateTimeZone.forTimeZone(getClientTimeZone()));
</code>
If the server's current date is different from the client's, this produces wrong output. I attached a patch with a test case that simulates this condition.
I don't know why this "casting" of day, month, year is done.