Package org.joda.time.chrono
Class ZonedChronology
- java.lang.Object
-
- org.joda.time.Chronology
-
- org.joda.time.chrono.BaseChronology
-
- org.joda.time.chrono.AssembledChronology
-
- org.joda.time.chrono.ZonedChronology
-
- All Implemented Interfaces:
java.io.Serializable
public final class ZonedChronology extends AssembledChronology
Wraps another Chronology to add support for time zones.ZonedChronology is thread-safe and immutable.
- Since:
- 1.0
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
ZonedChronology.ZonedDateTimeField
A DateTimeField that decorates another to add timezone behaviour.(package private) static class
ZonedChronology.ZonedDurationField
-
Nested classes/interfaces inherited from class org.joda.time.chrono.AssembledChronology
AssembledChronology.Fields
-
-
Field Summary
Fields Modifier and Type Field Description private static long
NEAR_ZERO
Avoid calculation errors near zero.private static long
serialVersionUID
Serialization lock
-
Constructor Summary
Constructors Modifier Constructor Description private
ZonedChronology(Chronology base, DateTimeZone zone)
Restricted constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
assemble(AssembledChronology.Fields fields)
Invoked by the constructor and after deserialization to allow subclasses to define all of its supported fields.private DateTimeField
convertField(DateTimeField field, java.util.HashMap<java.lang.Object,java.lang.Object> converted)
private DurationField
convertField(DurationField field, java.util.HashMap<java.lang.Object,java.lang.Object> converted)
boolean
equals(java.lang.Object obj)
A zoned chronology is only equal to a zoned chronology with the same base chronology and zone.long
getDateTimeMillis(int year, int monthOfYear, int dayOfMonth, int millisOfDay)
Returns a datetime millisecond instant, formed from the given year, month, day, and millisecond values.long
getDateTimeMillis(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond)
Returns a datetime millisecond instant, formed from the given year, month, day, hour, minute, second, and millisecond values.long
getDateTimeMillis(long instant, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond)
Returns a datetime millisecond instant, from from the given instant, hour, minute, second, and millisecond values.static ZonedChronology
getInstance(Chronology base, DateTimeZone zone)
Create a ZonedChronology for any chronology, overriding any time zone it may already have.DateTimeZone
getZone()
Returns the DateTimeZone that this Chronology operates in, or null if unspecified.int
hashCode()
A suitable hashcode for the chronology.private long
localToUTC(long localInstant)
java.lang.String
toString()
A debugging string for the chronology.(package private) static boolean
useTimeArithmetic(DurationField field)
Chronology
withUTC()
Returns an instance of this Chronology that operates in the UTC time zone.Chronology
withZone(DateTimeZone zone)
Returns an instance of this Chronology that operates in any time zone.-
Methods inherited from class org.joda.time.chrono.AssembledChronology
centuries, centuryOfEra, clockhourOfDay, clockhourOfHalfday, dayOfMonth, dayOfWeek, dayOfYear, days, era, eras, getBase, getParam, halfdayOfDay, halfdays, hourOfDay, hourOfHalfday, hours, millis, millisOfDay, millisOfSecond, minuteOfDay, minuteOfHour, minutes, monthOfYear, months, secondOfDay, secondOfMinute, seconds, weekOfWeekyear, weeks, weekyear, weekyearOfCentury, weekyears, year, yearOfCentury, yearOfEra, years
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
Serialization lock- See Also:
- Constant Field Values
-
NEAR_ZERO
private static final long NEAR_ZERO
Avoid calculation errors near zero.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ZonedChronology
private ZonedChronology(Chronology base, DateTimeZone zone)
Restricted constructor- Parameters:
base
- base chronology to wrapzone
- the time zone
-
-
Method Detail
-
getInstance
public static ZonedChronology getInstance(Chronology base, DateTimeZone zone)
Create a ZonedChronology for any chronology, overriding any time zone it may already have.- Parameters:
base
- base chronology to wrapzone
- the time zone- Throws:
java.lang.IllegalArgumentException
- if chronology or time zone is null
-
useTimeArithmetic
static boolean useTimeArithmetic(DurationField field)
-
getZone
public DateTimeZone getZone()
Description copied from class:BaseChronology
Returns the DateTimeZone that this Chronology operates in, or null if unspecified.- Overrides:
getZone
in classAssembledChronology
- Returns:
- DateTimeZone null if unspecified
-
withUTC
public Chronology withUTC()
Description copied from class:BaseChronology
Returns an instance of this Chronology that operates in the UTC time zone. Chronologies that do not operate in a time zone or are already UTC must return themselves.- Specified by:
withUTC
in classBaseChronology
- Returns:
- a version of this chronology that ignores time zones
-
withZone
public Chronology withZone(DateTimeZone zone)
Description copied from class:BaseChronology
Returns an instance of this Chronology that operates in any time zone.- Specified by:
withZone
in classBaseChronology
- Parameters:
zone
- to use, or default if null- Returns:
- a version of this chronology with a specific time zone
- See Also:
ZonedChronology
-
getDateTimeMillis
public long getDateTimeMillis(int year, int monthOfYear, int dayOfMonth, int millisOfDay) throws java.lang.IllegalArgumentException
Description copied from class:BaseChronology
Returns a datetime millisecond instant, formed from the given year, month, day, and millisecond values. The set of given values must refer to a valid datetime, or else an IllegalArgumentException is thrown.The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.
- Overrides:
getDateTimeMillis
in classAssembledChronology
- Parameters:
year
- year to usemonthOfYear
- month to usedayOfMonth
- day of month to usemillisOfDay
- millisecond to use- Returns:
- millisecond instant from 1970-01-01T00:00:00Z
- Throws:
java.lang.IllegalArgumentException
- if the values are invalid
-
getDateTimeMillis
public long getDateTimeMillis(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond) throws java.lang.IllegalArgumentException
Description copied from class:BaseChronology
Returns a datetime millisecond instant, formed from the given year, month, day, hour, minute, second, and millisecond values. The set of given values must refer to a valid datetime, or else an IllegalArgumentException is thrown.The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.
- Overrides:
getDateTimeMillis
in classAssembledChronology
- Parameters:
year
- year to usemonthOfYear
- month to usedayOfMonth
- day of month to usehourOfDay
- hour to useminuteOfHour
- minute to usesecondOfMinute
- second to usemillisOfSecond
- millisecond to use- Returns:
- millisecond instant from 1970-01-01T00:00:00Z
- Throws:
java.lang.IllegalArgumentException
- if the values are invalid
-
getDateTimeMillis
public long getDateTimeMillis(long instant, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond) throws java.lang.IllegalArgumentException
Description copied from class:BaseChronology
Returns a datetime millisecond instant, from from the given instant, hour, minute, second, and millisecond values. The set of given values must refer to a valid datetime, or else an IllegalArgumentException is thrown.The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.
- Overrides:
getDateTimeMillis
in classAssembledChronology
- Parameters:
instant
- instant to start fromhourOfDay
- hour to useminuteOfHour
- minute to usesecondOfMinute
- second to usemillisOfSecond
- millisecond to use- Returns:
- millisecond instant from 1970-01-01T00:00:00Z
- Throws:
java.lang.IllegalArgumentException
- if the values are invalid
-
localToUTC
private long localToUTC(long localInstant)
- Parameters:
localInstant
- the instant from 1970-01-01T00:00:00 local time- Returns:
- the instant from 1970-01-01T00:00:00Z
-
assemble
protected void assemble(AssembledChronology.Fields fields)
Description copied from class:AssembledChronology
Invoked by the constructor and after deserialization to allow subclasses to define all of its supported fields. All unset fields default to unsupported instances.- Specified by:
assemble
in classAssembledChronology
- Parameters:
fields
- container of fields
-
convertField
private DurationField convertField(DurationField field, java.util.HashMap<java.lang.Object,java.lang.Object> converted)
-
convertField
private DateTimeField convertField(DateTimeField field, java.util.HashMap<java.lang.Object,java.lang.Object> converted)
-
equals
public boolean equals(java.lang.Object obj)
A zoned chronology is only equal to a zoned chronology with the same base chronology and zone.- Overrides:
equals
in classjava.lang.Object
- Parameters:
obj
- the object to compare to- Returns:
- true if equal
- Since:
- 1.4
-
hashCode
public int hashCode()
A suitable hashcode for the chronology.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- the hashcode
- Since:
- 1.4
-
toString
public java.lang.String toString()
A debugging string for the chronology.- Specified by:
toString
in classBaseChronology
- Returns:
- the debugging string
-
-