Package org.apache.iotdb.db.qp.utils
Class DatetimeUtils
- java.lang.Object
-
- org.apache.iotdb.db.qp.utils.DatetimeUtils
-
public class DatetimeUtils extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDatetimeUtils.DurationUnit
-
Field Summary
Fields Modifier and Type Field Description static java.time.format.DateTimeFormatterformatterstatic java.time.format.DateTimeFormatterISO_LOCAL_DATE_WIDTH_1_2static java.time.format.DateTimeFormatterISO_LOCAL_DATE_WITH_DOTsuch as '2011.12.03'.static java.time.format.DateTimeFormatterISO_LOCAL_DATE_WITH_SLASHsuch as '2011/12/03'.static java.time.format.DateTimeFormatterISO_LOCAL_TIME_WITH_MSsuch as '10:15:30' or '10:15:30.123'.static java.time.format.DateTimeFormatterISO_LOCAL_TIME_WITH_NSsuch as '10:15:30' or '10:15:30.123456789'.static java.time.format.DateTimeFormatterISO_LOCAL_TIME_WITH_USsuch as '10:15:30' or '10:15:30.123456'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_DOTsuch as '2011.12.03T10:15:30+01:00' or '2011.12.03T10:15:30.123+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_DOT_NSsuch as '2011.12.03T10:15:30+01:00' or '2011.12.03T10:15:30.123456789+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_DOT_USsuch as '2011.12.03T10:15:30+01:00' or '2011.12.03T10:15:30.123456+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_DOT_WITH_SPACEsuch as '2011.12.03 10:15:30+01:00' or '2011.12.03 10:15:30.123+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_DOT_WITH_SPACE_NSsuch as '2011.12.03 10:15:30+01:00' or '2011.12.03 10:15:30.123456789+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_DOT_WITH_SPACE_USsuch as '2011.12.03 10:15:30+01:00' or '2011.12.03 10:15:30.123456+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_MSsuch as '2011-12-03T10:15:30+01:00' or '2011-12-03T10:15:30.123+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_NSsuch as '2011-12-03T10:15:30+01:00' or '2011-12-03T10:15:30.123456789+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_SLASHsuch as '2011/12/03T10:15:30+01:00' or '2011/12/03T10:15:30.123+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_SLASH_NSsuch as '2011/12/03T10:15:30+01:00' or '2011/12/03T10:15:30.123456789+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_SLASH_USsuch as '2011/12/03T10:15:30+01:00' or '2011/12/03T10:15:30.123456+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_SLASH_WITH_SPACEsuch as '2011/12/03 10:15:30+01:00' or '2011/12/03 10:15:30.123+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_SLASH_WITH_SPACE_NSsuch as '2011/12/03 10:15:30+01:00' or '2011/12/03 10:15:30.123456789+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_SLASH_WITH_SPACE_USsuch as '2011/12/03 10:15:30+01:00' or '2011/12/03 10:15:30.123456+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_SPACEsuch as '2011-12-03 10:15:30+01:00' or '2011-12-03 10:15:30.123+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_SPACE_NSsuch as '2011-12-03 10:15:30+01:00' or '2011-12-03 10:15:30.123456789+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_SPACE_USsuch as '2011-12-03 10:15:30+01:00' or '2011-12-03 10:15:30.123456+01:00'.static java.time.format.DateTimeFormatterISO_OFFSET_DATE_TIME_WITH_USsuch as '2011-12-03T10:15:30+01:00' or '2011-12-03T10:15:30.123456+01:00'.static longMS_TO_MONTH
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static longcalcIntervalByMonth(long startTime, long numMonths)add natural months based on the startTime to avoid edge cases, ie 2/28static longconvertDatetimeStrToLong(java.lang.String str, java.time.ZoneId zoneId)static longconvertDatetimeStrToLong(java.lang.String str, java.time.ZoneId zoneId, java.lang.String timestampPrecision)static longconvertDatetimeStrToLong(java.lang.String str, java.time.ZoneOffset offset, int depth, java.lang.String timestampPrecision)convert date time string to millisecond, microsecond or nanosecond.static longconvertDurationStrToLong(long currentTime, long value, java.lang.String unit, java.lang.String timestampPrecision)convert duration string to millisecond, microsecond or nanosecond.static longconvertDurationStrToLong(long currentTime, java.lang.String duration)static longconvertDurationStrToLong(long currentTime, java.lang.String duration, java.lang.String timestampPrecision)convert duration string to time value.static longconvertDurationStrToLong(java.lang.String duration)Convert duration string to time value.static longconvertDurationStrToLong(java.lang.String duration, java.lang.String timestampPrecision)static longconvertDurationStrToLongForTest(long value, java.lang.String unit, java.lang.String timestampPrecision)static java.lang.StringconvertLongToDate(long timestamp)static java.time.ZonedDateTimeconvertMillsecondToZonedDateTime(long millisecond)static longcurrentTime()static longgetInstantWithPrecision(java.lang.String str, java.lang.String timestampPrecision)static java.util.concurrent.TimeUnittimestampPrecisionStringToTimeUnit(java.lang.String timestampPrecision)static java.util.concurrent.TimeUnittoTimeUnit(java.lang.String t)static java.time.ZoneOffsettoZoneOffset(java.time.ZoneId zoneId)
-
-
-
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
-
MS_TO_MONTH
public static final long MS_TO_MONTH
- See Also:
- Constant Field Values
-
-
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 timenumMonths- numMonths is updated in hasNextWithoutConstraint()- Returns:
- nextStartTime
-
-