Class TimeParser

  • All Implemented Interfaces:
    TokenParser

    public class TimeParser
    extends Object
    A parser producing time token values from a user-defined text format.

    By default, parsed values must be both syntactically and semantically correct. However, the parser can be configured to be lenient and allow values in the right format to be parsed without error. If parsing is lenient, these values will be interpreted as additional units of the field in question applied to the limit for that field. This "rollover" is applied in order of precision, from least to most precise field. For instance, under lenient parsing:

    • "01:60:00" will be parsed as 2:00:00.
    • "25:00:00" will be parsed as 1:00:00.
    • "25:00:60" will be parsed as 1:01:00, adjusting first the hours, then the seconds

    Parsing is done using the Joda time library which uses a similar format to that described in SimpleDateFormat. Most specifiers compatible with the JDK will be compatible with Joda time, the notable exceptions being:

    • The 'W' (week in month) specifier is not supported.
    • The 'F' (day of week as number) specifier is replaced with 'e'.
    • Constructor Detail

      • TimeParser

        public TimeParser​(String format)
        Creates a parser using the specified format. Only empty strings are treated as null. Text values are interpreted strictly.
        Parameters:
        format - the input format to parse
      • TimeParser

        public TimeParser​(DateTimeFormatting format,
                          String nullIndicator)
        Creates a parser using the specified format. Empty strings and the specified text value are treated as null. Text values are interpreted strictly or leniently as indicated.
        Parameters:
        format - the input format to parse
        nullIndicator - the text value representing null
        lenient - indicates whether to be lenient about accepting values having the correct syntax, but not having a valid mapping.
    • Method Detail

      • setTarget

        public final void setTarget​(ScalarSettable output)
        Description copied from interface: TokenParser
        Sets the buffer for holding parsed values. A reference to this container is held and accessed only when an formatting is requested.
        Specified by:
        setTarget in interface TokenParser
        Parameters:
        output - the value buffer in which to store parsed values
      • parse

        public final boolean parse​(String text)
        Description copied from interface: TokenParser
        Parses the given text string into a token value. If the parse succeeds, the result is stored in the target buffer. If it fails, the contents of the target buffer are unchanged and information regarding failure will be saved that is accessible by calling the getParseError method.
        Specified by:
        parse in interface TokenParser
        Parameters:
        text - text string to convert. Callers should not assume it is safe to pass null.
        Returns:
        true if the parsing succeeded, false otherwise.
      • setParseError

        protected final void setParseError​(String msg)
      • getParseError

        public final String getParseError()
        Description copied from interface: TokenParser
        When parse method returns false this method can be used to retrieve the specific error message detailing why the parsing failed. If the last parse was successful an empty string will be returned
        Specified by:
        getParseError in interface TokenParser
        Returns:
        a message detailing any parse errors that occurred during the last call to parse.