public class DateTimeUtils
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static java.lang.Long |
MAX_UNIX_MILLIS |
static java.lang.Long |
MILLIS_PER_DAY |
static java.lang.Long |
MIN_UNIX_MILLIS |
| Constructor and Description |
|---|
DateTimeUtils() |
| Modifier and Type | Method and Description |
|---|---|
static org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.util.DateString |
convertDateValueToDateString(com.google.zetasql.Value value) |
static org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.util.TimeString |
convertTimeValueToTimeString(com.google.zetasql.Value value) |
static org.joda.time.format.DateTimeFormatter |
findDateTimePattern(java.lang.String str) |
static org.joda.time.format.DateTimeFormatter |
findDateTimePattern(java.lang.String str,
org.apache.beam.vendor.guava.v26_0_jre.com.google.common.collect.ImmutableMap<java.lang.Enum,org.joda.time.format.DateTimeFormatter> patternMap) |
static java.lang.String |
formatTimestampWithTimeZone(org.joda.time.DateTime dt) |
static org.joda.time.DateTime |
parseDate(java.lang.String str) |
static com.google.zetasql.Value |
parseDateToValue(java.lang.String dateString) |
static org.joda.time.DateTime |
parseTime(java.lang.String str) |
static org.joda.time.DateTime |
parseTimestampWithLocalTimeZone(java.lang.String str) |
static org.joda.time.DateTime |
parseTimestampWithoutTimeZone(java.lang.String str) |
static org.joda.time.DateTime |
parseTimestampWithTimeZone(java.lang.String str) |
static com.google.zetasql.Value |
parseTimestampWithTZToValue(java.lang.String timestampString) |
static org.joda.time.DateTime |
parseTimestampWithUTCTimeZone(java.lang.String str) |
static com.google.zetasql.Value |
parseTimeToValue(java.lang.String timeString) |
static long |
safeMicrosToMillis(long micros) |
static java.lang.Long |
validateTimeInterval(java.lang.Long arg,
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.avatica.util.TimeUnit unit)
This function validates that interval is compatible with ZetaSQL timestamp values range.
|
static java.lang.Long |
validateTimestamp(java.lang.Long ts)
This function validates that Long representation of timestamp is compatible with ZetaSQL
timestamp values range.
|
public static final java.lang.Long MILLIS_PER_DAY
public static final java.lang.Long MIN_UNIX_MILLIS
public static final java.lang.Long MAX_UNIX_MILLIS
public static org.joda.time.format.DateTimeFormatter findDateTimePattern(java.lang.String str)
public static org.joda.time.format.DateTimeFormatter findDateTimePattern(java.lang.String str,
org.apache.beam.vendor.guava.v26_0_jre.com.google.common.collect.ImmutableMap<java.lang.Enum,org.joda.time.format.DateTimeFormatter> patternMap)
public static org.joda.time.DateTime parseTimestampWithUTCTimeZone(java.lang.String str)
public static org.joda.time.DateTime parseTimestampWithLocalTimeZone(java.lang.String str)
public static org.joda.time.DateTime parseTimestampWithTimeZone(java.lang.String str)
public static java.lang.String formatTimestampWithTimeZone(org.joda.time.DateTime dt)
public static org.joda.time.DateTime parseTimestampWithoutTimeZone(java.lang.String str)
public static org.joda.time.DateTime parseDate(java.lang.String str)
public static org.joda.time.DateTime parseTime(java.lang.String str)
public static org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.util.TimeString convertTimeValueToTimeString(com.google.zetasql.Value value)
public static org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.util.DateString convertDateValueToDateString(com.google.zetasql.Value value)
public static com.google.zetasql.Value parseDateToValue(java.lang.String dateString)
public static com.google.zetasql.Value parseTimeToValue(java.lang.String timeString)
public static com.google.zetasql.Value parseTimestampWithTZToValue(java.lang.String timestampString)
public static long safeMicrosToMillis(long micros)
@Nullable
public static java.lang.Long validateTimestamp(@Nullable
java.lang.Long ts)
Invoked via reflection. @see SqlOperators
ts - Timestamp to validate.@Nullable
public static java.lang.Long validateTimeInterval(@Nullable
java.lang.Long arg,
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.avatica.util.TimeUnit unit)
ZetaSQL validates that if we represent interval in milliseconds, it will fit into Long.
In case of SECOND or smaller time unit, it converts timestamp to microseconds, so we need to convert those to microsecond and verify that we do not cause overflow.
Invoked via reflection. @see SqlOperators
arg - Argument for the interval.unit - Time unit used in this interval.