Class DatetimeUtils


  • public class DatetimeUtils
    extends java.lang.Object
    • Field Detail

      • ISO_LOCAL_DATE_WIDTH_1_2

        public static final java.time.format.DateTimeFormatter ISO_LOCAL_DATE_WIDTH_1_2
      • ISO_LOCAL_DATE_WITH_SLASH

        public static final java.time.format.DateTimeFormatter ISO_LOCAL_DATE_WITH_SLASH
        such as '2011/12/03'.
      • ISO_LOCAL_DATE_WITH_DOT

        public static final java.time.format.DateTimeFormatter ISO_LOCAL_DATE_WITH_DOT
        such as '2011.12.03'.
      • ISO_LOCAL_TIME_WITH_MS

        public static final java.time.format.DateTimeFormatter ISO_LOCAL_TIME_WITH_MS
        such as '10:15:30' or '10:15:30.123'.
      • ISO_LOCAL_TIME_WITH_US

        public static final java.time.format.DateTimeFormatter ISO_LOCAL_TIME_WITH_US
        such as '10:15:30' or '10:15:30.123456'.
      • ISO_LOCAL_TIME_WITH_NS

        public static final java.time.format.DateTimeFormatter ISO_LOCAL_TIME_WITH_NS
        such as '10:15:30' or '10:15:30.123456789'.
      • ISO_OFFSET_DATE_TIME_WITH_MS

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_MS
        such as '2011-12-03T10:15:30+01:00' or '2011-12-03T10:15:30.123+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_US

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_US
        such as '2011-12-03T10:15:30+01:00' or '2011-12-03T10:15:30.123456+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_NS

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_NS
        such as '2011-12-03T10:15:30+01:00' or '2011-12-03T10:15:30.123456789+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_SLASH

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_SLASH
        such as '2011/12/03T10:15:30+01:00' or '2011/12/03T10:15:30.123+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_SLASH_US

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_SLASH_US
        such as '2011/12/03T10:15:30+01:00' or '2011/12/03T10:15:30.123456+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_SLASH_NS

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_SLASH_NS
        such as '2011/12/03T10:15:30+01:00' or '2011/12/03T10:15:30.123456789+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_DOT

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_DOT
        such as '2011.12.03T10:15:30+01:00' or '2011.12.03T10:15:30.123+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_DOT_US

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_DOT_US
        such as '2011.12.03T10:15:30+01:00' or '2011.12.03T10:15:30.123456+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_DOT_NS

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_DOT_NS
        such as '2011.12.03T10:15:30+01:00' or '2011.12.03T10:15:30.123456789+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_SPACE

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_SPACE
        such as '2011-12-03 10:15:30+01:00' or '2011-12-03 10:15:30.123+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_SPACE_US

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_SPACE_US
        such as '2011-12-03 10:15:30+01:00' or '2011-12-03 10:15:30.123456+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_SPACE_NS

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_SPACE_NS
        such as '2011-12-03 10:15:30+01:00' or '2011-12-03 10:15:30.123456789+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_SLASH_WITH_SPACE

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_SLASH_WITH_SPACE
        such as '2011/12/03 10:15:30+01:00' or '2011/12/03 10:15:30.123+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_SLASH_WITH_SPACE_US

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_SLASH_WITH_SPACE_US
        such as '2011/12/03 10:15:30+01:00' or '2011/12/03 10:15:30.123456+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_SLASH_WITH_SPACE_NS

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_SLASH_WITH_SPACE_NS
        such as '2011/12/03 10:15:30+01:00' or '2011/12/03 10:15:30.123456789+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_DOT_WITH_SPACE

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_DOT_WITH_SPACE
        such as '2011.12.03 10:15:30+01:00' or '2011.12.03 10:15:30.123+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_DOT_WITH_SPACE_US

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_DOT_WITH_SPACE_US
        such as '2011.12.03 10:15:30+01:00' or '2011.12.03 10:15:30.123456+01:00'.
      • ISO_OFFSET_DATE_TIME_WITH_DOT_WITH_SPACE_NS

        public static final java.time.format.DateTimeFormatter ISO_OFFSET_DATE_TIME_WITH_DOT_WITH_SPACE_NS
        such as '2011.12.03 10:15:30+01:00' or '2011.12.03 10:15:30.123456789+01:00'.
      • formatter

        public static final java.time.format.DateTimeFormatter formatter
    • Method Detail

      • convertDatetimeStrToLong

        public static long convertDatetimeStrToLong​(java.lang.String str,
                                                    java.time.ZoneId zoneId)
      • convertDatetimeStrToLong

        public static long convertDatetimeStrToLong​(java.lang.String str,
                                                    java.time.ZoneId zoneId,
                                                    java.lang.String timestampPrecision)
      • getInstantWithPrecision

        public static long getInstantWithPrecision​(java.lang.String str,
                                                   java.lang.String timestampPrecision)
      • convertDatetimeStrToLong

        public static long convertDatetimeStrToLong​(java.lang.String str,
                                                    java.time.ZoneOffset offset,
                                                    int depth,
                                                    java.lang.String timestampPrecision)
        convert date time string to millisecond, microsecond or nanosecond.
      • convertDurationStrToLong

        public static long convertDurationStrToLong​(java.lang.String duration)
        Convert duration string to time value. CurrentTime is used to calculate the days of natural month. If it's set as -1, which means a context free situation, then '1mo' will be thought as 30 days.
        Parameters:
        duration - represent duration string like: 12d8m9ns, 1y1mo, etc.
        Returns:
        time in milliseconds, microseconds, or nanoseconds depending on the profile
      • convertDurationStrToLong

        public static long convertDurationStrToLong​(java.lang.String duration,
                                                    java.lang.String timestampPrecision)
      • convertDurationStrToLong

        public static long convertDurationStrToLong​(long currentTime,
                                                    java.lang.String duration)
      • convertDurationStrToLong

        public static long convertDurationStrToLong​(long currentTime,
                                                    java.lang.String duration,
                                                    java.lang.String timestampPrecision)
        convert duration string to time value.
        Parameters:
        duration - represent duration string like: 12d8m9ns, 1y1mo, etc.
        Returns:
        time in milliseconds, microseconds, or nanoseconds depending on the profile
      • convertDurationStrToLongForTest

        public static long convertDurationStrToLongForTest​(long value,
                                                           java.lang.String unit,
                                                           java.lang.String timestampPrecision)
      • convertDurationStrToLong

        public static long convertDurationStrToLong​(long currentTime,
                                                    long value,
                                                    java.lang.String unit,
                                                    java.lang.String timestampPrecision)
        convert duration string to millisecond, microsecond or nanosecond.
      • timestampPrecisionStringToTimeUnit

        public static java.util.concurrent.TimeUnit timestampPrecisionStringToTimeUnit​(java.lang.String timestampPrecision)
      • currentTime

        public static long currentTime()
      • convertLongToDate

        public static java.lang.String convertLongToDate​(long timestamp)
      • toZoneOffset

        public static java.time.ZoneOffset toZoneOffset​(java.time.ZoneId zoneId)
      • convertMillsecondToZonedDateTime

        public static java.time.ZonedDateTime convertMillsecondToZonedDateTime​(long millisecond)
      • toTimeUnit

        public static java.util.concurrent.TimeUnit toTimeUnit​(java.lang.String t)
      • calcIntervalByMonth

        public static long calcIntervalByMonth​(long startTime,
                                               long numMonths)
        add natural months based on the startTime to avoid edge cases, ie 2/28
        Parameters:
        startTime - current start time
        numMonths - numMonths is updated in hasNextWithoutConstraint()
        Returns:
        nextStartTime