java.lang.Object | |
↳ | org.joda.time.tz.DateTimeZoneBuilder |
DateTimeZoneBuilder allows complex DateTimeZones to be constructed. Since creating a new DateTimeZone this way is a relatively expensive operation, built zones can be written to a file. Reading back the encoded data is a quick operation.
DateTimeZoneBuilder itself is mutable and not thread-safe, but the DateTimeZone objects that it builds are thread-safe and immutable.
It is intended that ZoneInfoCompiler
be used to read time zone data
files, indirectly calling DateTimeZoneBuilder. The following complex
example defines the America/Los_Angeles time zone, with all historical
transitions:
DateTimeZone America_Los_Angeles = new DateTimeZoneBuilder() .addCutover(-2147483648, 'w', 1, 1, 0, false, 0) .setStandardOffset(-28378000) .setFixedSavings("LMT", 0) .addCutover(1883, 'w', 11, 18, 0, false, 43200000) .setStandardOffset(-28800000) .addRecurringSavings("PDT", 3600000, 1918, 1919, 'w', 3, -1, 7, false, 7200000) .addRecurringSavings("PST", 0, 1918, 1919, 'w', 10, -1, 7, false, 7200000) .addRecurringSavings("PWT", 3600000, 1942, 1942, 'w', 2, 9, 0, false, 7200000) .addRecurringSavings("PPT", 3600000, 1945, 1945, 'u', 8, 14, 0, false, 82800000) .addRecurringSavings("PST", 0, 1945, 1945, 'w', 9, 30, 0, false, 7200000) .addRecurringSavings("PDT", 3600000, 1948, 1948, 'w', 3, 14, 0, false, 7200000) .addRecurringSavings("PST", 0, 1949, 1949, 'w', 1, 1, 0, false, 7200000) .addRecurringSavings("PDT", 3600000, 1950, 1966, 'w', 4, -1, 7, false, 7200000) .addRecurringSavings("PST", 0, 1950, 1961, 'w', 9, -1, 7, false, 7200000) .addRecurringSavings("PST", 0, 1962, 1966, 'w', 10, -1, 7, false, 7200000) .addRecurringSavings("PST", 0, 1967, 2147483647, 'w', 10, -1, 7, false, 7200000) .addRecurringSavings("PDT", 3600000, 1967, 1973, 'w', 4, -1, 7, false, 7200000) .addRecurringSavings("PDT", 3600000, 1974, 1974, 'w', 1, 6, 0, false, 7200000) .addRecurringSavings("PDT", 3600000, 1975, 1975, 'w', 2, 23, 0, false, 7200000) .addRecurringSavings("PDT", 3600000, 1976, 1986, 'w', 4, -1, 7, false, 7200000) .addRecurringSavings("PDT", 3600000, 1987, 2147483647, 'w', 4, 1, 7, true, 7200000) .toDateTimeZone("America/Los_Angeles", true);
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Adds a cutover for added rules.
| |||||||||||
Add a recurring daylight saving time rule.
| |||||||||||
Decodes a built DateTimeZone from the given stream, as encoded by
writeTo.
| |||||||||||
Decodes a built DateTimeZone from the given stream, as encoded by
writeTo.
| |||||||||||
Set a fixed savings rule at the cutover.
| |||||||||||
Sets the standard offset to use for newly added rules until the next
cutover is added.
| |||||||||||
Processes all the rules and builds a DateTimeZone.
| |||||||||||
Encodes a built DateTimeZone to the given stream.
| |||||||||||
Encodes a built DateTimeZone to the given stream.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
Adds a cutover for added rules. The standard offset at the cutover defaults to 0. Call setStandardOffset afterwards to change it.
year | the year of cutover |
---|---|
mode | 'u' - cutover is measured against UTC, 'w' - against wall offset, 's' - against standard offset |
monthOfYear | the month from 1 (January) to 12 (December) |
dayOfMonth | if negative, set to ((last day of month) - ~dayOfMonth). For example, if -1, set to last day of month |
dayOfWeek | from 1 (Monday) to 7 (Sunday), if 0 then ignore |
advanceDayOfWeek | if dayOfMonth does not fall on dayOfWeek, advance to dayOfWeek when true, retreat when false. |
millisOfDay | additional precision for specifying time of day of cutover |
Add a recurring daylight saving time rule.
nameKey | the name key of new rule |
---|---|
saveMillis | the milliseconds to add to standard offset |
fromYear | the first year that rule is in effect, MIN_VALUE indicates beginning of time |
toYear | the last year (inclusive) that rule is in effect, MAX_VALUE indicates end of time |
mode | 'u' - transitions are calculated against UTC, 'w' - transitions are calculated against wall offset, 's' - transitions are calculated against standard offset |
monthOfYear | the month from 1 (January) to 12 (December) |
dayOfMonth | if negative, set to ((last day of month) - ~dayOfMonth). For example, if -1, set to last day of month |
dayOfWeek | from 1 (Monday) to 7 (Sunday), if 0 then ignore |
advanceDayOfWeek | if dayOfMonth does not fall on dayOfWeek, advance to dayOfWeek when true, retreat when false. |
millisOfDay | additional precision for specifying time of day of transitions |
Decodes a built DateTimeZone from the given stream, as encoded by writeTo.
in | input stream to read encoded DateTimeZone from. |
---|---|
id | time zone id to assign |
IOException |
---|
Decodes a built DateTimeZone from the given stream, as encoded by writeTo.
in | input stream to read encoded DateTimeZone from. |
---|---|
id | time zone id to assign |
IOException |
---|
Set a fixed savings rule at the cutover.
Sets the standard offset to use for newly added rules until the next cutover is added.
standardOffset | the standard offset in millis |
---|
Processes all the rules and builds a DateTimeZone.
id | time zone id to assign |
---|---|
outputID | true if the zone id should be output |
Encodes a built DateTimeZone to the given stream. Call readFrom to decode the data into a DateTimeZone object.
out | the output stream to receive the encoded DateTimeZone |
---|
IOException |
---|
Encodes a built DateTimeZone to the given stream. Call readFrom to decode the data into a DateTimeZone object.
out | the output stream to receive the encoded DateTimeZone |
---|
IOException |
---|