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 classZonedChronology.ZonedDateTimeFieldA DateTimeField that decorates another to add timezone behaviour.(package private) static classZonedChronology.ZonedDurationField-
Nested classes/interfaces inherited from class org.joda.time.chrono.AssembledChronology
AssembledChronology.Fields
-
-
Field Summary
Fields Modifier and Type Field Description private static longNEAR_ZEROAvoid calculation errors near zero.private static longserialVersionUIDSerialization lock
-
Constructor Summary
Constructors Modifier Constructor Description privateZonedChronology(Chronology base, DateTimeZone zone)Restricted constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidassemble(AssembledChronology.Fields fields)Invoked by the constructor and after deserialization to allow subclasses to define all of its supported fields.private DateTimeFieldconvertField(DateTimeField field, java.util.HashMap<java.lang.Object,java.lang.Object> converted)private DurationFieldconvertField(DurationField field, java.util.HashMap<java.lang.Object,java.lang.Object> converted)booleanequals(java.lang.Object obj)A zoned chronology is only equal to a zoned chronology with the same base chronology and zone.longgetDateTimeMillis(int year, int monthOfYear, int dayOfMonth, int millisOfDay)Returns a datetime millisecond instant, formed from the given year, month, day, and millisecond values.longgetDateTimeMillis(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.longgetDateTimeMillis(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 ZonedChronologygetInstance(Chronology base, DateTimeZone zone)Create a ZonedChronology for any chronology, overriding any time zone it may already have.DateTimeZonegetZone()Returns the DateTimeZone that this Chronology operates in, or null if unspecified.inthashCode()A suitable hashcode for the chronology.private longlocalToUTC(long localInstant)java.lang.StringtoString()A debugging string for the chronology.(package private) static booleanuseTimeArithmetic(DurationField field)ChronologywithUTC()Returns an instance of this Chronology that operates in the UTC time zone.ChronologywithZone(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:BaseChronologyReturns the DateTimeZone that this Chronology operates in, or null if unspecified.- Overrides:
getZonein classAssembledChronology- Returns:
- DateTimeZone null if unspecified
-
withUTC
public Chronology withUTC()
Description copied from class:BaseChronologyReturns 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:
withUTCin classBaseChronology- Returns:
- a version of this chronology that ignores time zones
-
withZone
public Chronology withZone(DateTimeZone zone)
Description copied from class:BaseChronologyReturns an instance of this Chronology that operates in any time zone.- Specified by:
withZonein 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.IllegalArgumentExceptionDescription copied from class:BaseChronologyReturns 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:
getDateTimeMillisin 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.IllegalArgumentExceptionDescription copied from class:BaseChronologyReturns 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:
getDateTimeMillisin 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.IllegalArgumentExceptionDescription copied from class:BaseChronologyReturns 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:
getDateTimeMillisin 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:AssembledChronologyInvoked 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:
assemblein 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:
equalsin 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:
hashCodein classjava.lang.Object- Returns:
- the hashcode
- Since:
- 1.4
-
toString
public java.lang.String toString()
A debugging string for the chronology.- Specified by:
toStringin classBaseChronology- Returns:
- the debugging string
-
-