Package org.h2.util
Class TimeZoneProvider
- java.lang.Object
-
- org.h2.util.TimeZoneProvider
-
- Direct Known Subclasses:
TimeZoneProvider.Simple
,TimeZoneProvider.WithTimeZone
public abstract class TimeZoneProvider extends java.lang.Object
Provides access to time zone API.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
TimeZoneProvider.Simple
Time zone provider with offset.(package private) static class
TimeZoneProvider.WithTimeZone
Time zone provider with time zone.
-
Field Summary
Fields Modifier and Type Field Description static TimeZoneProvider[]
CACHE
A small cache for timezone providers.private static int
CACHE_SIZE
The number of cache elements (needs to be a power of 2).static TimeZoneProvider
UTC
The UTC time zone provider.
-
Constructor Summary
Constructors Constructor Description TimeZoneProvider()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static TimeZoneProvider
getDefault()
Returns the time zone provider for the system default time zone.abstract long
getEpochSecondsFromLocal(long dateValue, long timeNanos)
Calculates the epoch seconds from local date and time.abstract java.lang.String
getId()
Returns the ID of the time zone.abstract java.lang.String
getShortId(long epochSeconds)
Get the standard time name or daylight saving time name of the time zone.abstract int
getTimeZoneOffsetLocal(long dateValue, long timeNanos)
Calculates the time zone offset in seconds for the specified date value and nanoseconds since midnight in local time.abstract int
getTimeZoneOffsetUTC(long epochSeconds)
Calculates the time zone offset in seconds for the specified EPOCH seconds.boolean
hasFixedOffset()
Returns whether this is a simple time zone provider with a fixed offset from UTC.static TimeZoneProvider
ofId(java.lang.String id)
Returns the time zone provider with the specified name.static TimeZoneProvider
ofOffset(int offset)
Returns the time zone provider with the specified offset.
-
-
-
Field Detail
-
UTC
public static final TimeZoneProvider UTC
The UTC time zone provider.
-
CACHE
public static TimeZoneProvider[] CACHE
A small cache for timezone providers.
-
CACHE_SIZE
private static final int CACHE_SIZE
The number of cache elements (needs to be a power of 2).- See Also:
- Constant Field Values
-
-
Method Detail
-
ofOffset
public static TimeZoneProvider ofOffset(int offset)
Returns the time zone provider with the specified offset.- Parameters:
offset
- UTC offset in seconds- Returns:
- the time zone provider with the specified offset
-
ofId
public static TimeZoneProvider ofId(java.lang.String id) throws java.lang.RuntimeException
Returns the time zone provider with the specified name.- Parameters:
id
- the ID of the time zone- Returns:
- the time zone provider with the specified name
- Throws:
java.lang.RuntimeException
- if time zone with specified ID isn't known
-
getDefault
public static TimeZoneProvider getDefault()
Returns the time zone provider for the system default time zone.- Returns:
- the time zone provider for the system default time zone
-
getTimeZoneOffsetUTC
public abstract int getTimeZoneOffsetUTC(long epochSeconds)
Calculates the time zone offset in seconds for the specified EPOCH seconds.- Parameters:
epochSeconds
- seconds since EPOCH- Returns:
- time zone offset in minutes
-
getTimeZoneOffsetLocal
public abstract int getTimeZoneOffsetLocal(long dateValue, long timeNanos)
Calculates the time zone offset in seconds for the specified date value and nanoseconds since midnight in local time.- Parameters:
dateValue
- date valuetimeNanos
- nanoseconds since midnight- Returns:
- time zone offset in minutes
-
getEpochSecondsFromLocal
public abstract long getEpochSecondsFromLocal(long dateValue, long timeNanos)
Calculates the epoch seconds from local date and time.- Parameters:
dateValue
- date valuetimeNanos
- nanoseconds since midnight- Returns:
- the epoch seconds value
-
getId
public abstract java.lang.String getId()
Returns the ID of the time zone.- Returns:
- the ID of the time zone
-
getShortId
public abstract java.lang.String getShortId(long epochSeconds)
Get the standard time name or daylight saving time name of the time zone.- Parameters:
epochSeconds
- seconds since EPOCH- Returns:
- the standard time name or daylight saving time name of the time zone
-
hasFixedOffset
public boolean hasFixedOffset()
Returns whether this is a simple time zone provider with a fixed offset from UTC.- Returns:
- whether this is a simple time zone provider with a fixed offset from UTC
-
-