shouldn't this: public void updateModel() {
dateField.updateModel(); hoursField.updateModel(); minutesField.updateModel(); amOrPmChoice.updateModel(); if (date != null) { try { TimeZone zone = getClientTimeZone(); if (zone != null) { date.setZone(DateTimeZone.forTimeZone(zone)); } if (hours != null) { date.set(DateTimeFieldType.hourOfHalfday(), hours .intValue()); date.setMinuteOfHour((minutes != null) ? minutes.intValue() : 0); } if (amOrPm == AM_PM.PM) { date.set(DateTimeFieldType.halfdayOfDay(), 1); } else { date.set(DateTimeFieldType.halfdayOfDay(), 0); } } catch (RuntimeException e) { DateTimeField.this.error(e.getMessage()); invalid(); } // the date will be in the server's timezone Date d = date.toDate(); setModelObject(d); } else { setModelObject(null); } } be this: public void updateModel() { dateField.updateModel(); hoursField.updateModel(); minutesField.updateModel(); amOrPmChoice.updateModel(); if (date != null) { try { TimeZone zone = getClientTimeZone(); if (zone != null) { date.setZone(DateTimeZone.forTimeZone(zone)); } if (hours != null) { date.set(DateTimeFieldType.hourOfHalfday(), hours .intValue()); date.setMinuteOfHour((minutes != null) ? minutes.intValue() : 0); } if (amOrPm == AM_PM.PM) { date.set(DateTimeFieldType.halfdayOfDay(), 1); } else { date.set(DateTimeFieldType.halfdayOfDay(), 0); } // the date will be in the server's timezone Date d = date.toDate(); setModelObject(d); } catch (RuntimeException e) { DateTimeField.this.error(e.getMessage()); invalid(); } } else { setModelObject(null); } } So only set the model object to the date if there is no exception?