Class DateConverter

  • All Implemented Interfaces:
    ConverterMatcher, ErrorReporter, SingleValueConverter

    public class DateConverter
    extends AbstractSingleValueConverter
    implements ErrorReporter
    Converts a Date to a string as a date format, retaining precision down to milliseconds.

    The formatted string is by default in UTC and English locale. You can provide a different Locale and TimeZone that are used for serialization or null to use always the current TimeZone. Note, that the default format uses 3-letter time zones that can be ambiguous and may cause wrong results at deserialization and is localized since Java 6.

    Using a Java 7 runtime or higher, the converter supports the datetime format defined by W3C (a subset of ISO 8601) at deserialization. Only the formats that also contain the time information.

    Dates in a different era are using a special default pattern that contains the era itself.

    • Constructor Summary

      Constructors 
      Constructor Description
      DateConverter()
      Construct a DateConverter with standard formats and lenient set off.
      DateConverter​(boolean lenient)
      Construct a DateConverter with standard formats and using UTC.
      DateConverter​(java.lang.String defaultFormat, java.lang.String[] acceptableFormats)
      Construct a DateConverter with lenient set off using UTC.
      DateConverter​(java.lang.String defaultFormat, java.lang.String[] acceptableFormats, boolean lenient)
      Construct a DateConverter.
      DateConverter​(java.lang.String defaultFormat, java.lang.String[] acceptableFormats, java.util.TimeZone timeZone)
      Construct a DateConverter with a given TimeZone and lenient set off.
      DateConverter​(java.lang.String defaultFormat, java.lang.String[] acceptableFormats, java.util.TimeZone timeZone, boolean lenient)
      Construct a DateConverter.
      DateConverter​(java.lang.String defaultEraFormat, java.lang.String defaultFormat, java.lang.String[] acceptableFormats, java.util.Locale locale, java.util.TimeZone timeZone, boolean lenient)
      Construct a DateConverter.
      DateConverter​(java.util.TimeZone timeZone)
      Construct a DateConverter with standard formats, lenient set off and uses a given TimeZone for serialization.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void appendErrors​(ErrorWriter errorWriter)
      Append context information to an ErrorWriter.
      boolean canConvert​(java.lang.Class type)
      Determines whether the converter can marshall a particular type.
      java.lang.Object fromString​(java.lang.String str)
      Unmarshals an Object from its single value representation.
      java.lang.String toString​(java.lang.Object obj)
      Marshals an Object into a single value representation.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DEFAULT_ACCEPTABLE_FORMATS

        private static final java.lang.String[] DEFAULT_ACCEPTABLE_FORMATS
      • DEFAULT_PATTERN

        private static final java.lang.String DEFAULT_PATTERN
      • DEFAULT_ERA_PATTERN

        private static final java.lang.String DEFAULT_ERA_PATTERN
      • UTC

        private static final java.util.TimeZone UTC
      • ERA_START

        private static final long ERA_START
    • Constructor Detail

      • DateConverter

        public DateConverter()
        Construct a DateConverter with standard formats and lenient set off.
      • DateConverter

        public DateConverter​(java.util.TimeZone timeZone)
        Construct a DateConverter with standard formats, lenient set off and uses a given TimeZone for serialization.
        Parameters:
        timeZone - the TimeZone used to serialize the Date
        Since:
        1.4
      • DateConverter

        public DateConverter​(boolean lenient)
        Construct a DateConverter with standard formats and using UTC.
        Parameters:
        lenient - the lenient setting of DateFormat.setLenient(boolean)
        Since:
        1.3
      • DateConverter

        public DateConverter​(java.lang.String defaultFormat,
                             java.lang.String[] acceptableFormats)
        Construct a DateConverter with lenient set off using UTC.
        Parameters:
        defaultFormat - the default format
        acceptableFormats - fallback formats
      • DateConverter

        public DateConverter​(java.lang.String defaultFormat,
                             java.lang.String[] acceptableFormats,
                             java.util.TimeZone timeZone)
        Construct a DateConverter with a given TimeZone and lenient set off.
        Parameters:
        defaultFormat - the default format
        acceptableFormats - fallback formats
        Since:
        1.4
      • DateConverter

        public DateConverter​(java.lang.String defaultFormat,
                             java.lang.String[] acceptableFormats,
                             boolean lenient)
        Construct a DateConverter.
        Parameters:
        defaultFormat - the default format
        acceptableFormats - fallback formats
        lenient - the lenient setting of DateFormat.setLenient(boolean)
        Since:
        1.3
      • DateConverter

        public DateConverter​(java.lang.String defaultFormat,
                             java.lang.String[] acceptableFormats,
                             java.util.TimeZone timeZone,
                             boolean lenient)
        Construct a DateConverter.
        Parameters:
        defaultFormat - the default format
        acceptableFormats - fallback formats
        timeZone - the TimeZone used to serialize the Date
        lenient - the lenient setting of DateFormat.setLenient(boolean)
        Since:
        1.4
      • DateConverter

        public DateConverter​(java.lang.String defaultEraFormat,
                             java.lang.String defaultFormat,
                             java.lang.String[] acceptableFormats,
                             java.util.Locale locale,
                             java.util.TimeZone timeZone,
                             boolean lenient)
        Construct a DateConverter.
        Parameters:
        defaultEraFormat - the default format for dates in a different era (may be null to drop era support)
        defaultFormat - the default format
        acceptableFormats - fallback formats
        locale - locale to use for the format
        timeZone - the TimeZone used to serialize the Date
        lenient - the lenient setting of DateFormat.setLenient(boolean)
        Since:
        1.4.4