static { try { if (GWT.isClient()) { // This only works on the client. // class ClientInternalEDateTimeFormat implements InternalEDateTimeFormat { DateTimeFormat dateTimeFormat; ClientInternalEDateTimeFormat(DateTimeFormat dateTimeFormat) { this.dateTimeFormat = dateTimeFormat; } public Date parse(String value) { return dateTimeFormat.parse(value); } public String format(Date value) { return dateTimeFormat.format(value); } } EDATE_FORMATS = new InternalEDateTimeFormat[] { new ClientInternalEDateTimeFormat( DateTimeFormat .getFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ")), new ClientInternalEDateTimeFormat( DateTimeFormat .getFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSS")), new ClientInternalEDateTimeFormat( DateTimeFormat .getFormat("yyyy-MM-dd'T'HH:mm:ss")), new ClientInternalEDateTimeFormat( DateTimeFormat.getFormat("yyyy-MM-dd'T'HH:mm")), new ClientInternalEDateTimeFormat( DateTimeFormat.getFormat("yyyy-MM-dd")) }; } else { class ServerInternalEDateTimeFormat implements InternalEDateTimeFormat { DateFormat dateFormat; ServerInternalEDateTimeFormat(DateFormat dateFormat) { this.dateFormat = dateFormat; } public Date parse(String value) { try { return dateFormat.parse(value); } catch (ParseException e) { throw new RuntimeException(e); } } public String format(Date value) { return dateFormat.format(value); } } EDATE_FORMATS = new InternalEDateTimeFormat[] { new ServerInternalEDateTimeFormat(new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss'.'SSSZ")), new ServerInternalEDateTimeFormat(new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss'.'SSS")), new ServerInternalEDateTimeFormat(new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss")), new ServerInternalEDateTimeFormat(new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm")), new ServerInternalEDateTimeFormat(new SimpleDateFormat( "yyyy-MM-dd")) }; } } catch (Throwable exception) { // Ignore. } }