Package org.joda.time.tz
Class CachedDateTimeZone
- java.lang.Object
-
- org.joda.time.DateTimeZone
-
- org.joda.time.tz.CachedDateTimeZone
-
- All Implemented Interfaces:
java.io.Serializable
public class CachedDateTimeZone extends DateTimeZone
Improves the performance of requesting time zone offsets and name keys by caching the results. Time zones that have simple rules or are fixed should not be cached, as it is unlikely to improve performance.CachedDateTimeZone is thread-safe and immutable.
- Since:
- 1.0
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.joda.time.DateTimeZone
DEFAULT_TZ_DATA_PATH, UTC
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object obj)Compare this datetime zone with another.static CachedDateTimeZoneforZone(DateTimeZone zone)Returns a new CachedDateTimeZone unless given zone is already cached.java.lang.StringgetNameKey(long instant)Returns a non-localized name that is unique to this time zone.intgetOffset(long instant)Gets the millisecond offset to add to UTC to get local time.intgetStandardOffset(long instant)Gets the raw millisecond offset to add to UTC.DateTimeZonegetUncachedZone()Returns the DateTimeZone being wrapped.inthashCode()Gets a hash code compatible with equals.booleanisFixed()Returns true if this time zone has no transitions.longnextTransition(long instant)Advances the given instant to where the time zone offset or name changes.longpreviousTransition(long instant)Retreats the given instant to where the time zone offset or name changes.-
Methods inherited from class org.joda.time.DateTimeZone
adjustOffset, convertLocalToUTC, convertLocalToUTC, convertUTCToLocal, forID, forOffsetHours, forOffsetHoursMinutes, forOffsetMillis, forTimeZone, getAvailableIDs, getDefault, getID, getMillisKeepLocal, getName, getName, getNameProvider, getOffset, getOffsetFromLocal, getProvider, getShortName, getShortName, isLocalDateTimeGap, isStandardOffset, setDefault, setNameProvider, setProvider, toString, toTimeZone
-
-
-
-
Method Detail
-
forZone
public static CachedDateTimeZone forZone(DateTimeZone zone)
Returns a new CachedDateTimeZone unless given zone is already cached.
-
getUncachedZone
public DateTimeZone getUncachedZone()
Returns the DateTimeZone being wrapped.
-
getNameKey
public java.lang.String getNameKey(long instant)
Description copied from class:DateTimeZoneReturns a non-localized name that is unique to this time zone. It can be combined with id to form a unique key for fetching localized names.- Specified by:
getNameKeyin classDateTimeZone- Parameters:
instant- milliseconds from 1970-01-01T00:00:00Z to get the name for- Returns:
- name key or null if id should be used for names
-
getOffset
public int getOffset(long instant)
Description copied from class:DateTimeZoneGets the millisecond offset to add to UTC to get local time.This returns the actual offset from UTC for the zone at the specified instant. If the method is called with a different instant, the offset returned may be different as a result of daylight saving or other government rule changes.
- Specified by:
getOffsetin classDateTimeZone- Parameters:
instant- milliseconds from 1970-01-01T00:00:00Z to get the offset for- Returns:
- the millisecond offset to add to UTC to get local time
-
getStandardOffset
public int getStandardOffset(long instant)
Description copied from class:DateTimeZoneGets the raw millisecond offset to add to UTC.This should be treated as an implementation detail. End-users should use
DateTimeZone.getOffset(long).This returns the raw offset from UTC for the zone at the specified instant, effectively ignoring DST. If the method is called with a different instant, the offset returned may be different as a result of government rule changes.
This method should be named
getRawOffset()but cannot be renamed for compatibility reasons.- Specified by:
getStandardOffsetin classDateTimeZone- Parameters:
instant- milliseconds from 1970-01-01T00:00:00Z to get the offset for- Returns:
- the millisecond offset to add to UTC to get local time
-
isFixed
public boolean isFixed()
Description copied from class:DateTimeZoneReturns true if this time zone has no transitions.- Specified by:
isFixedin classDateTimeZone- Returns:
- true if no transitions
-
nextTransition
public long nextTransition(long instant)
Description copied from class:DateTimeZoneAdvances the given instant to where the time zone offset or name changes. If the instant returned is exactly the same as passed in, then no changes occur after the given instant.- Specified by:
nextTransitionin classDateTimeZone- Parameters:
instant- milliseconds from 1970-01-01T00:00:00Z- Returns:
- milliseconds from 1970-01-01T00:00:00Z
-
previousTransition
public long previousTransition(long instant)
Description copied from class:DateTimeZoneRetreats the given instant to where the time zone offset or name changes. If the instant returned is exactly the same as passed in, then no changes occur before the given instant.- Specified by:
previousTransitionin classDateTimeZone- Parameters:
instant- milliseconds from 1970-01-01T00:00:00Z- Returns:
- milliseconds from 1970-01-01T00:00:00Z
-
hashCode
public int hashCode()
Description copied from class:DateTimeZoneGets a hash code compatible with equals.- Overrides:
hashCodein classDateTimeZone- Returns:
- suitable hashcode
-
equals
public boolean equals(java.lang.Object obj)
Description copied from class:DateTimeZoneCompare this datetime zone with another.- Specified by:
equalsin classDateTimeZone- Parameters:
obj- the object to compare with- Returns:
- true if equal, based on the ID and all internal rules
-
-