Class DateConverter

java.lang.Object
com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter
com.thoughtworks.xstream.converters.basic.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.

  • Field Details

    • DEFAULT_ACCEPTABLE_FORMATS

      private static final String[] DEFAULT_ACCEPTABLE_FORMATS
    • DEFAULT_PATTERN

      private static final String DEFAULT_PATTERN
    • DEFAULT_ERA_PATTERN

      private static final String DEFAULT_ERA_PATTERN
    • UTC

      private static final TimeZone UTC
    • ERA_START

      private static final long ERA_START
    • defaultFormat

      private final ThreadSafeSimpleDateFormat defaultFormat
    • defaultEraFormat

      private final ThreadSafeSimpleDateFormat defaultEraFormat
    • acceptableFormats

      private final ThreadSafeSimpleDateFormat[] acceptableFormats
  • Constructor Details

    • DateConverter

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

      public DateConverter(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(String defaultFormat, String[] acceptableFormats)
      Construct a DateConverter with lenient set off using UTC.
      Parameters:
      defaultFormat - the default format
      acceptableFormats - fallback formats
    • DateConverter

      public DateConverter(String defaultFormat, String[] acceptableFormats, 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(String defaultFormat, 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(String defaultFormat, String[] acceptableFormats, 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(String defaultEraFormat, String defaultFormat, String[] acceptableFormats, Locale locale, 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
  • Method Details