Class DateConversion

  • All Implemented Interfaces:
    Conversion<java.lang.String,​java.util.Date>, FormattedConversion<java.text.SimpleDateFormat>

    public class DateConversion
    extends ObjectConversion<java.util.Date>
    implements FormattedConversion<java.text.SimpleDateFormat>
    Converts Strings to instances of Date and vice versa.

    This class supports multiple date formats. For example, you can define conversions from dates represented by different Strings such as "2001/05/02 and Dec/2013".

    The reverse conversion from a Date to String (in revert(Date) will return a formatted String using the date pattern provided in this class constructor

    The date patterns must follows the pattern rules of SimpleDateFormat

    See Also:
    SimpleDateFormat
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String[] formats  
      private java.util.Locale locale  
      private java.text.SimpleDateFormat[] parsers  
      private java.util.TimeZone timeZone  
    • Constructor Summary

      Constructors 
      Constructor Description
      DateConversion​(java.lang.String... dateFormats)
      Defines a conversion from String to Date using a sequence of acceptable date patterns.
      DateConversion​(java.util.Date valueIfStringIsNull, java.lang.String valueIfObjectIsNull, java.lang.String... dateFormats)
      Defines a conversion from String to Date using a sequence of acceptable date patterns.
      DateConversion​(java.util.Locale locale, java.lang.String... dateFormats)
      Defines a conversion from String to Date using a sequence of acceptable date patterns.
      DateConversion​(java.util.Locale locale, java.util.Date valueIfStringIsNull, java.lang.String valueIfObjectIsNull, java.lang.String... dateFormats)
      Defines a conversion from String to Date using a sequence of acceptable date patterns.
      DateConversion​(java.util.TimeZone timeZone, java.util.Locale locale, java.util.Date valueIfStringIsNull, java.lang.String valueIfObjectIsNull, java.lang.String... dateFormats)
      Defines a conversion from String to Date using a sequence of acceptable date patterns.
    • Field Detail

      • locale

        private final java.util.Locale locale
      • timeZone

        private final java.util.TimeZone timeZone
      • parsers

        private final java.text.SimpleDateFormat[] parsers
      • formats

        private final java.lang.String[] formats
    • Constructor Detail

      • DateConversion

        public DateConversion​(java.util.TimeZone timeZone,
                              java.util.Locale locale,
                              java.util.Date valueIfStringIsNull,
                              java.lang.String valueIfObjectIsNull,
                              java.lang.String... dateFormats)
        Defines a conversion from String to Date using a sequence of acceptable date patterns. This constructor assumes the output of a conversion should be null when input is null
        Parameters:
        timeZone - the TimeZone of the date to be formatted
        locale - the Locale that determines how the date mask should be formatted.
        valueIfStringIsNull - default Date value to be returned when the input String is null. Used when ObjectConversion.execute(String) is invoked.
        valueIfObjectIsNull - default String value to be returned when a Date input is null. Used when revert(Date) is invoked.
        dateFormats - list of acceptable date patterns The first pattern in this sequence will be used to convert a Date into a String in revert(Date).
      • DateConversion

        public DateConversion​(java.util.Locale locale,
                              java.util.Date valueIfStringIsNull,
                              java.lang.String valueIfObjectIsNull,
                              java.lang.String... dateFormats)
        Defines a conversion from String to Date using a sequence of acceptable date patterns. This constructor assumes the output of a conversion should be null when input is null
        Parameters:
        locale - the Locale that determines how the date mask should be formatted.
        valueIfStringIsNull - default Date value to be returned when the input String is null. Used when ObjectConversion.execute(String) is invoked.
        valueIfObjectIsNull - default String value to be returned when a Date input is null. Used when revert(Date) is invoked.
        dateFormats - list of acceptable date patterns The first pattern in this sequence will be used to convert a Date into a String in revert(Date).
      • DateConversion

        public DateConversion​(java.util.Date valueIfStringIsNull,
                              java.lang.String valueIfObjectIsNull,
                              java.lang.String... dateFormats)
        Defines a conversion from String to Date using a sequence of acceptable date patterns. This constructor assumes the output of a conversion should be null when input is null
        Parameters:
        valueIfStringIsNull - default Date value to be returned when the input String is null. Used when ObjectConversion.execute(String) is invoked.
        valueIfObjectIsNull - default String value to be returned when a Date input is null. Used when revert(Date) is invoked.
        dateFormats - list of acceptable date patterns The first pattern in this sequence will be used to convert a Date into a String in revert(Date).
      • DateConversion

        public DateConversion​(java.util.Locale locale,
                              java.lang.String... dateFormats)
        Defines a conversion from String to Date using a sequence of acceptable date patterns. This constructor assumes the output of a conversion should be null when input is null
        Parameters:
        locale - the Locale that determines how the date mask should be formatted.
        dateFormats - list of acceptable date patterns The first pattern in this sequence will be used to convert a Date into a String in revert(Date).
      • DateConversion

        public DateConversion​(java.lang.String... dateFormats)
        Defines a conversion from String to Date using a sequence of acceptable date patterns. This constructor assumes the output of a conversion should be null when input is null
        Parameters:
        dateFormats - list of acceptable date patterns The first pattern in this sequence will be used to convert a Date into a String in revert(Date).
    • Method Detail

      • revert

        public java.lang.String revert​(java.util.Date input)
        Converts Date to a formatted date String.

        The pattern used to generate the formatted date is the first date pattern provided in the constructor of this class

        Specified by:
        revert in interface Conversion<java.lang.String,​java.util.Date>
        Overrides:
        revert in class ObjectConversion<java.util.Date>
        Parameters:
        input - the Date to be converted to a String
        Returns:
        a formatted date String representing the date provided by the given Date, or the value of valueIfObjectIsNull if the Date parameter is null.
      • fromString

        protected java.util.Date fromString​(java.lang.String input)
        Converts a formatted date String to an instance of Date.

        The pattern in the formatted date must match one of the date patterns provided in the constructor of this class.

        Specified by:
        fromString in class ObjectConversion<java.util.Date>
        Parameters:
        input - the String containing a formatted date which must be converted to a Date
        Returns:
        the Date instance containing the date information represented by the given String, or the value of valueIfObjectIsNull if the String input is null.
      • getFormatterObjects

        public java.text.SimpleDateFormat[] getFormatterObjects()
        Description copied from interface: FormattedConversion
        Returns the formatter objects
        Specified by:
        getFormatterObjects in interface FormattedConversion<java.text.SimpleDateFormat>
        Returns:
        the formatter objects used to apply formatting to values to generate formatted Strings, and parsing formatted Strings into values
      • getTimeZone

        public java.util.TimeZone getTimeZone()