Class DateTimeUtils


  • public class DateTimeUtils
    extends Object
    Utilities for working with date/time values.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static long epochDaysToMillis​(long epochDays, TimeZone tz)
      Gets the instant in time at midnight in the specified time zone corresponding to the given date.
      static String format​(DateValued value)
      Converts a date value into an ISO8601 date formatted string.
      static String format​(TimestampValued value)
      Converts a time stamp value into an ISO8601 time stamp formatted string.
      static String format​(TimeValued value)
      Converts a time of day value into an ISO8601 time formatted string.
      static String formatDaysSinceEpoch​(long epochDays)
      Converts a date, expressed as days, into an ISO8601 date formatted string.
      static String formatEpochTime​(long seconds, int nanos, int offsetSecs)
      Converts a time stamp, expressed as component values, into an ISO8601 time stamp formatted string.
      static String formatMillisSinceMidnight​(int dayMillis)
      Converts a time of day, expressed as milliseconds, into an ISO8601 time formatted string.
      static org.joda.time.chrono.ISOChronology getDefaultChronology()  
      static TimeZone getDefaultTimeZone()  
      static int normalizeMillisSinceMidnight​(long millis)
      Normalize elapsed milliseconds to the standard range from midnight to midnight.
      protected static int parseIntField​(String str, int startPos, int endPos)  
      static void parseInto​(String text, DateSettable buffer)
      Parses a date in ISO8601 format, storing the result into a date valued container.
      static void parseInto​(String text, TimeSettable buffer)
      Parses a time of day in ISO8601 time format, storing the result into a time valued container.
      static void parseInto​(String text, TimestampSettable buffer)
      Parses a timestamp in ISO8601 format, storing the result into a timestamp valued container..
      static int parseTimeFields​(String str, com.pervasive.datarush.tokens.scalar.DateTimeUtils.TimeParsingContext ctx, int pos)  
      static long parseToDaysSinceEpoch​(String text)
      Parses a date in ISO8601 time format into days since epoch.
      static int parseToMillisSinceMidnight​(String text)
      Parses a time of day in ISO8601 time format into milliseconds since midnight.
      static Date toDate​(long epochDays)
      Gets the instant in time at midnight in the default time zone corresponding to the given date.
      static Date toDate​(long epochDays, TimeZone tz)
      Gets the instant in time at midnight in the specified time zone corresponding to the given date.
      static long toDaysSinceEpoch​(int year, int monthOfYear, int dayOfMonth)
      Gets the specified date as days since epoch.
      static long toDaysSinceEpoch​(long millis)
      Gets the date represented by the given instant in the default time zone as days since epoch.
      static long toDaysSinceEpoch​(long millis, TimeZone tz)
      Gets the date represented by the given instant in the specified time zone as days since epoch.
      static long toDaysSinceEpoch​(Date date)
      Gets the date represented by the given instant in the default time zone as days since epoch.
      static long toDaysSinceEpoch​(Date date, TimeZone tz)
      Gets the date represented by the given instant in the specified time zone as days since epoch.
      static void toEpochTime​(long millis, TimestampSettable buffer)
      Stores the given instant into a time stamp buffer using the default time zone for the offset.
      static void toEpochTime​(long millis, TimeZone tz, TimestampSettable buffer)
      Stores the given instant into a time stamp buffer using the specified time zone for the offset.
      static void toEpochTime​(Timestamp timestamp, TimestampSettable buffer)
      Stores the given instant into a time stamp buffer using the default time zone for the offset.
      static void toEpochTime​(Timestamp timestamp, TimeZone tz, TimestampSettable buffer)
      Stores the given instant into a time stamp buffer using the specified time zone for the offset.
      static void toEpochTime​(Date date, TimestampSettable buffer)
      Stores the given instant into a time stamp buffer using the default time zone for the offset.
      static void toEpochTime​(Date date, TimeZone tz, TimestampSettable buffer)
      Stores the given instant into a time stamp buffer using the specified time zone for the offset.
      static int toMillisSinceMidnight​(int hourOfDay, int minuteOfHour, int secondOfMinute)
      Gets the time, in 24-hour format, as milliseconds since midnight.
      static int toMillisSinceMidnight​(long instant)
      Gets the time of day represented by the given instant in the default time zone as milliseconds since midnight.
      static int toMillisSinceMidnight​(long instant, int tzoffset)
      Gets the time of day represented by the given instant in the specified time zone as milliseconds since midnight.
      static int toMillisSinceMidnight​(long instant, TimeZone tz)
      Gets the time of day represented by the given instant in the specified time zone as milliseconds since midnight.
      static int toMillisSinceMidnight​(Date time)
      Gets the time of day represented by the given instant in the default time zone as milliseconds since midnight.
      static int toMillisSinceMidnight​(Date time, TimeZone tz)
      Gets the time of day represented by the given instant in the specified time zone as milliseconds since midnight.
      static Time toTime​(long dayMillis)
      Gets the instant in time on January 1, 1970 in the default time zone corresponding to the given time of day.
      static Time toTime​(long dayMillis, TimeZone tz)
      Gets the instant in time on January 1, 1970 in the specified time zone corresponding to the given time of day.
      static Timestamp toTimestamp​(long epochSecs, int subsecNanos, int offsetSecs)
      Gets the instant in time on corresponding to the specified epoch time.
      static void withCSTTimeZone​(Runnable runnable)  
    • Field Detail

      • LOCALTZ

        @Deprecated
        public static final TimeZone LOCALTZ
        Deprecated.
        The default time zone used in date conversions. This matches the time zone returned by TimeZone.getDefault(). Deprecated because this static instance is unsafe to use because tests or end users may want to set the default Timezone late and that should be respected. Only use TimeZone.getDefault directly instead.
      • CST_TIMEZONE

        public static final TimeZone CST_TIMEZONE
    • Method Detail

      • parseIntField

        protected static int parseIntField​(String str,
                                           int startPos,
                                           int endPos)
      • parseTimeFields

        public static int parseTimeFields​(String str,
                                          com.pervasive.datarush.tokens.scalar.DateTimeUtils.TimeParsingContext ctx,
                                          int pos)
      • toDaysSinceEpoch

        public static long toDaysSinceEpoch​(int year,
                                            int monthOfYear,
                                            int dayOfMonth)
        Gets the specified date as days since epoch.
        Parameters:
        year - the year portion of the date
        monthOfYear - the month portion of the date. Months are counted as on a calendar, starting with 1 for January.
        dayOfMonth - the day portion of the date
        Returns:
        the number of days elapsed since January 1, 1970
      • toDaysSinceEpoch

        public static long toDaysSinceEpoch​(long millis)
        Gets the date represented by the given instant in the default time zone as days since epoch.
        Parameters:
        millis - the instant in time to convert
        Returns:
        the number of days elapsed since January 1, 1970
      • toDaysSinceEpoch

        public static long toDaysSinceEpoch​(long millis,
                                            TimeZone tz)
        Gets the date represented by the given instant in the specified time zone as days since epoch.
        Parameters:
        millis - the instant in time to convert
        tz - the time zone relative to which to interpret the instant
        Returns:
        the number of days elapsed since January 1, 1970
      • toDaysSinceEpoch

        public static long toDaysSinceEpoch​(Date date)
        Gets the date represented by the given instant in the default time zone as days since epoch.
        Parameters:
        date - the instant in time to convert
        tz - the time zone relative to which to interpret the instant
        Returns:
        the number of days elapsed since January 1, 1970
      • toDaysSinceEpoch

        public static long toDaysSinceEpoch​(Date date,
                                            TimeZone tz)
        Gets the date represented by the given instant in the specified time zone as days since epoch.
        Parameters:
        date - the instant in time to convert
        tz - the time zone relative to which to interpret the instant
        Returns:
        the number of days elapsed since January 1, 1970
      • epochDaysToMillis

        public static long epochDaysToMillis​(long epochDays,
                                             TimeZone tz)
        Gets the instant in time at midnight in the specified time zone corresponding to the given date.
        Parameters:
        epochDays - the number of milliseconds elapsed since January 1, 1970
        tz - the time zone relative to which to convert the date
        Returns:
        the resulting instant in time as milliseconds in epoch
      • toDate

        public static Date toDate​(long epochDays)
        Gets the instant in time at midnight in the default time zone corresponding to the given date.
        Parameters:
        epochDays - the number of milliseconds elapsed since January 1, 1970
        Returns:
        a Date object representing the date
      • toDate

        public static Date toDate​(long epochDays,
                                  TimeZone tz)
        Gets the instant in time at midnight in the specified time zone corresponding to the given date.
        Parameters:
        epochDays - the number of milliseconds elapsed since January 1, 1970
        tz - the time zone relative to which to convert the date
        Returns:
        a Date object representing the date
      • parseToDaysSinceEpoch

        public static long parseToDaysSinceEpoch​(String text)
        Parses a date in ISO8601 time format into days since epoch.
        Parameters:
        text - a date in ISO8601 format
        Returns:
        the number of days elapsed since January 1, 1970
      • parseInto

        public static void parseInto​(String text,
                                     DateSettable buffer)
        Parses a date in ISO8601 format, storing the result into a date valued container. The empty string is parsed as a null value.
        Parameters:
        text - a date in ISO8601 format.
        buffer - the container in which to store the parsed value
      • formatDaysSinceEpoch

        public static String formatDaysSinceEpoch​(long epochDays)
        Converts a date, expressed as days, into an ISO8601 date formatted string.
        Parameters:
        epochDays - the number of days elapsed since January 1, 1970
        Returns:
        the date in ISO8601 format
      • format

        public static String format​(DateValued value)
        Converts a date value into an ISO8601 date formatted string.
        Parameters:
        value - the date value to convert
        Returns:
        the date in ISO8601 format. If the input is null valued, the empty string is returned.
      • normalizeMillisSinceMidnight

        public static int normalizeMillisSinceMidnight​(long millis)
        Normalize elapsed milliseconds to the standard range from midnight to midnight.
        Parameters:
        millis - milliseconds elapsed since midnight
        Returns:
        the normalize milliseconds representing the same time of day
      • toMillisSinceMidnight

        public static int toMillisSinceMidnight​(int hourOfDay,
                                                int minuteOfHour,
                                                int secondOfMinute)
        Gets the time, in 24-hour format, as milliseconds since midnight.
        Parameters:
        hourOfDay - the hour portion of the time
        minuteOfHour - the minutes portion of the time
        secondOfMinute - the seconds portion of the time
        Returns:
        the number of milliseconds elapsed since midnight
      • toMillisSinceMidnight

        public static int toMillisSinceMidnight​(long instant)
        Gets the time of day represented by the given instant in the default time zone as milliseconds since midnight.
        Parameters:
        instant - the instant in time to convert
        Returns:
        the number of milliseconds elapsed since midnight
      • toMillisSinceMidnight

        public static int toMillisSinceMidnight​(long instant,
                                                TimeZone tz)
        Gets the time of day represented by the given instant in the specified time zone as milliseconds since midnight.
        Parameters:
        instant - the instant in time to convert
        tz - the time zone relative to which to interpret the instant
        Returns:
        the number of milliseconds elapsed since midnight
      • toMillisSinceMidnight

        public static int toMillisSinceMidnight​(long instant,
                                                int tzoffset)
        Gets the time of day represented by the given instant in the specified time zone as milliseconds since midnight.
        Parameters:
        instant - the instant in time to convert
        tzoffset - the time zone offset with which to interpret the instant
        Returns:
        the number of milliseconds elapsed since midnight
      • toMillisSinceMidnight

        public static int toMillisSinceMidnight​(Date time)
        Gets the time of day represented by the given instant in the default time zone as milliseconds since midnight.
        Parameters:
        time - the instant in time to convert
        Returns:
        the number of milliseconds elapsed since midnight
      • toMillisSinceMidnight

        public static int toMillisSinceMidnight​(Date time,
                                                TimeZone tz)
        Gets the time of day represented by the given instant in the specified time zone as milliseconds since midnight.
        Parameters:
        time - the instant in time to convert
        tz - the time zone relative to which to interpret the instant
        Returns:
        the number of milliseconds elapsed since midnight
      • toTime

        public static Time toTime​(long dayMillis)
        Gets the instant in time on January 1, 1970 in the default time zone corresponding to the given time of day.
        Parameters:
        dayMillis - the number of milliseconds elapsed since midnight
        Returns:
        a Time object representing the time of day
      • toTime

        public static Time toTime​(long dayMillis,
                                  TimeZone tz)
        Gets the instant in time on January 1, 1970 in the specified time zone corresponding to the given time of day.
        Parameters:
        dayMillis - the number of milliseconds elapsed since midnight
        tz - the time zone relative to which to convert the time of day
        Returns:
        a Time object representing the time of day
      • parseToMillisSinceMidnight

        public static int parseToMillisSinceMidnight​(String text)
        Parses a time of day in ISO8601 time format into milliseconds since midnight.
        Parameters:
        text - a time of day in ISO8601 format
        Returns:
        the number of milliseconds elapsed since midnight
      • parseInto

        public static void parseInto​(String text,
                                     TimeSettable buffer)
        Parses a time of day in ISO8601 time format, storing the result into a time valued container. The empty string is parsed as a null value.
        Parameters:
        text - a time of day in ISO8601 format.
        buffer - the container in which to store the parsed value
      • formatMillisSinceMidnight

        public static String formatMillisSinceMidnight​(int dayMillis)
        Converts a time of day, expressed as milliseconds, into an ISO8601 time formatted string.
        Parameters:
        millisSinceMidnight - the number of milliseconds elapsed since midnight
        Returns:
        the time of day in ISO8601 format
      • format

        public static String format​(TimeValued value)
        Converts a time of day value into an ISO8601 time formatted string.
        Parameters:
        value - the time value to format
        Returns:
        the time of day in ISO8601 format. If the input is null valued, the empty string is returned.
      • toEpochTime

        public static void toEpochTime​(long millis,
                                       TimestampSettable buffer)
        Stores the given instant into a time stamp buffer using the default time zone for the offset.
        Parameters:
        millis - the instant in time to convert
        buffer - the container into which to store the value
      • toEpochTime

        public static void toEpochTime​(long millis,
                                       TimeZone tz,
                                       TimestampSettable buffer)
        Stores the given instant into a time stamp buffer using the specified time zone for the offset.
        Parameters:
        millis - the instant in time to convert
        tz - the time zone relative to which to interpret the instant
        buffer - the container into which to store the value
      • toEpochTime

        public static void toEpochTime​(Date date,
                                       TimestampSettable buffer)
        Stores the given instant into a time stamp buffer using the default time zone for the offset. Nanosecond precision in the source value will be preserved, if present.
        Parameters:
        date - the instant in time to convert
        buffer - the container into which to store the value
      • toEpochTime

        public static void toEpochTime​(Date date,
                                       TimeZone tz,
                                       TimestampSettable buffer)
        Stores the given instant into a time stamp buffer using the specified time zone for the offset. Nanosecond precision in the source value will be preserved, if present.
        Parameters:
        date - the instant in time to convert
        tz - the time zone relative to which to interpret the instant
        buffer - the container into which to store the value
      • toEpochTime

        public static void toEpochTime​(Timestamp timestamp,
                                       TimestampSettable buffer)
        Stores the given instant into a time stamp buffer using the default time zone for the offset. The nanosecond precision of the source value is preserved.
        Parameters:
        timestamp - the instant in time to convert
        buffer - the container into which to store the value
      • toEpochTime

        public static void toEpochTime​(Timestamp timestamp,
                                       TimeZone tz,
                                       TimestampSettable buffer)
        Stores the given instant into a time stamp buffer using the specified time zone for the offset. The nanosecond precision of the source value is preserved.
        Parameters:
        timestamp - the instant in time to convert
        tz - the time zone relative to which to interpret the instant
        buffer - the container into which to store the value
      • toTimestamp

        public static Timestamp toTimestamp​(long epochSecs,
                                            int subsecNanos,
                                            int offsetSecs)
        Gets the instant in time on corresponding to the specified epoch time.
        Parameters:
        epochSecs - number of seconds since Java epoch
        subsecNanos - fractional portion of epoch time in nanoseconds
        offsetSecs - time zone + daylight saving time offset in seconds
        dayMillis - the number of milliseconds elapsed since midnight
        Returns:
        a Timestamp object representing the time stamp
      • parseInto

        public static void parseInto​(String text,
                                     TimestampSettable buffer)
        Parses a timestamp in ISO8601 format, storing the result into a timestamp valued container.. The empty string is parsed as a null value.
        Parameters:
        text - a timestamp in ISO8601 format.
        buffer - the container in which to store the parsed value
      • formatEpochTime

        public static String formatEpochTime​(long seconds,
                                             int nanos,
                                             int offsetSecs)
        Converts a time stamp, expressed as component values, into an ISO8601 time stamp formatted string.
        Parameters:
        seconds - number of seconds since Java epoch
        nanos - fractional portion of epoch time in nanoseconds
        offsetSeconds - time zone and daylight saving time offset, in seconds
        Returns:
        the time stamp in ISO8601 format
      • format

        public static String format​(TimestampValued value)
        Converts a time stamp value into an ISO8601 time stamp formatted string.
        Parameters:
        value - the time stamp value to format
        Returns:
        the time stamp in ISO8601 format. If the input is null valued, the empty string is returned.
      • getDefaultTimeZone

        public static TimeZone getDefaultTimeZone()
      • withCSTTimeZone

        public static void withCSTTimeZone​(Runnable runnable)
      • getDefaultChronology

        public static org.joda.time.chrono.ISOChronology getDefaultChronology()