Package org.h2.util
Class LegacyDateTimeUtils
- java.lang.Object
-
- org.h2.util.LegacyDateTimeUtils
-
public final class LegacyDateTimeUtils extends java.lang.Object
Date and time utilities forDate
,Time
, andTimestamp
classes.
-
-
Field Summary
Fields Modifier and Type Field Description static java.sql.Date
PROLEPTIC_GREGORIAN_CHANGE
Gregorian change date for aGregorianCalendar
that represents a proleptic Gregorian calendar.static java.util.TimeZone
UTC
UTC time zone.
-
Constructor Summary
Constructors Modifier Constructor Description private
LegacyDateTimeUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static long
dateValueFromLocalMillis(long ms)
Convert a local datetime in millis to an encoded date.static ValueDate
fromDate(CastDataProvider provider, java.util.TimeZone timeZone, java.sql.Date date)
Get or create a date value for the given date.static ValueTime
fromTime(CastDataProvider provider, java.util.TimeZone timeZone, java.sql.Time time)
Get or create a time value for the given time.static ValueTimestamp
fromTimestamp(CastDataProvider provider, long ms, int nanos)
Get or create a timestamp value for the given date/time in millis.static ValueTimestamp
fromTimestamp(CastDataProvider provider, java.util.TimeZone timeZone, java.sql.Timestamp timestamp)
Get or create a timestamp value for the given timestamp.static long
getMillis(CastDataProvider provider, java.util.TimeZone tz, long dateValue, long timeNanos)
Calculate the milliseconds since 1970-01-01 (UTC) for the given date and time (in the specified timezone).static int
getTimeZoneOffsetMillis(CastDataProvider provider, long ms)
Returns local time zone offset for a specified timestamp.static TypeInfo
legacyClassToType(java.lang.Class<?> clazz)
Get the type information for the given legacy Java class.static Value
legacyObjectToValue(CastDataProvider session, java.lang.Object x)
Convert a legacy Java object to a value.static long
nanosFromLocalMillis(long ms)
Convert a time in milliseconds in local time to the nanoseconds since midnight.private static ValueTimestamp
timestampFromLocalMillis(long ms, int nanos)
static java.sql.Date
toDate(CastDataProvider provider, java.util.TimeZone timeZone, Value value)
Get the date value converted to the specified time zone.static java.sql.Time
toTime(CastDataProvider provider, java.util.TimeZone timeZone, Value value)
Get the time value converted to the specified time zone.static java.sql.Timestamp
toTimestamp(CastDataProvider provider, java.util.TimeZone timeZone, Value value)
Get the timestamp value converted to the specified time zone.static <T> T
valueToLegacyType(java.lang.Class<T> type, Value value, CastDataProvider provider)
Converts the specified value to an object of the specified legacy type.
-
-
-
Method Detail
-
fromDate
public static ValueDate fromDate(CastDataProvider provider, java.util.TimeZone timeZone, java.sql.Date date)
Get or create a date value for the given date.- Parameters:
provider
- the cast information providertimeZone
- time zone, ornull
for defaultdate
- the date- Returns:
- the value
-
fromTime
public static ValueTime fromTime(CastDataProvider provider, java.util.TimeZone timeZone, java.sql.Time time)
Get or create a time value for the given time.- Parameters:
provider
- the cast information providertimeZone
- time zone, ornull
for defaulttime
- the time- Returns:
- the value
-
fromTimestamp
public static ValueTimestamp fromTimestamp(CastDataProvider provider, java.util.TimeZone timeZone, java.sql.Timestamp timestamp)
Get or create a timestamp value for the given timestamp.- Parameters:
provider
- the cast information providertimeZone
- time zone, ornull
for defaulttimestamp
- the timestamp- Returns:
- the value
-
fromTimestamp
public static ValueTimestamp fromTimestamp(CastDataProvider provider, long ms, int nanos)
Get or create a timestamp value for the given date/time in millis.- Parameters:
provider
- the cast information providerms
- the millisecondsnanos
- the nanoseconds- Returns:
- the value
-
timestampFromLocalMillis
private static ValueTimestamp timestampFromLocalMillis(long ms, int nanos)
-
dateValueFromLocalMillis
public static long dateValueFromLocalMillis(long ms)
Convert a local datetime in millis to an encoded date.- Parameters:
ms
- the milliseconds- Returns:
- the date value
-
nanosFromLocalMillis
public static long nanosFromLocalMillis(long ms)
Convert a time in milliseconds in local time to the nanoseconds since midnight.- Parameters:
ms
- the milliseconds- Returns:
- the nanoseconds
-
toDate
public static java.sql.Date toDate(CastDataProvider provider, java.util.TimeZone timeZone, Value value)
Get the date value converted to the specified time zone.- Parameters:
provider
- the cast information providertimeZone
- the target time zonevalue
- the value to convert- Returns:
- the date
-
toTime
public static java.sql.Time toTime(CastDataProvider provider, java.util.TimeZone timeZone, Value value)
Get the time value converted to the specified time zone.- Parameters:
provider
- the cast information providertimeZone
- the target time zonevalue
- the value to convert- Returns:
- the time
-
toTimestamp
public static java.sql.Timestamp toTimestamp(CastDataProvider provider, java.util.TimeZone timeZone, Value value)
Get the timestamp value converted to the specified time zone.- Parameters:
provider
- the cast information providertimeZone
- the target time zonevalue
- the value to convert- Returns:
- the timestamp
-
getMillis
public static long getMillis(CastDataProvider provider, java.util.TimeZone tz, long dateValue, long timeNanos)
Calculate the milliseconds since 1970-01-01 (UTC) for the given date and time (in the specified timezone).- Parameters:
provider
- the cast information providertz
- the timezone of the parameters, or null for the default timezonedateValue
- date valuetimeNanos
- nanoseconds since midnight- Returns:
- the number of milliseconds (UTC)
-
getTimeZoneOffsetMillis
public static int getTimeZoneOffsetMillis(CastDataProvider provider, long ms)
Returns local time zone offset for a specified timestamp.- Parameters:
provider
- the cast information providerms
- milliseconds since Epoch in UTC- Returns:
- local time zone offset
-
legacyObjectToValue
public static Value legacyObjectToValue(CastDataProvider session, java.lang.Object x)
Convert a legacy Java object to a value.- Parameters:
session
- the sessionx
- the value- Returns:
- the value, or
null
if not supported
-
valueToLegacyType
public static <T> T valueToLegacyType(java.lang.Class<T> type, Value value, CastDataProvider provider)
Converts the specified value to an object of the specified legacy type.- Type Parameters:
T
- the type- Parameters:
type
- the classvalue
- the valueprovider
- the cast information provider- Returns:
- an instance of the specified class, or
null
if not supported
-
legacyClassToType
public static TypeInfo legacyClassToType(java.lang.Class<?> clazz)
Get the type information for the given legacy Java class.- Parameters:
clazz
- the Java class- Returns:
- the value type, or
null
if not supported
-
-