org.goda.time.tz
public class DateTimeZoneBuilder extends Object
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");
ZoneInfoCompiler,
ZoneInfoProvider| Constructor and Description |
|---|
DateTimeZoneBuilder() |
| Modifier and Type | Method and Description |
|---|---|
DateTimeZoneBuilder |
addCutover(int year,
char mode,
int monthOfYear,
int dayOfMonth,
int dayOfWeek,
boolean advanceDayOfWeek,
int millisOfDay)
Adds a cutover for added rules.
|
DateTimeZoneBuilder |
addRecurringSavings(String nameKey,
int saveMillis,
int fromYear,
int toYear,
char mode,
int monthOfYear,
int dayOfMonth,
int dayOfWeek,
boolean advanceDayOfWeek,
int millisOfDay)
Add a recurring daylight saving time rule.
|
DateTimeZoneBuilder |
setFixedSavings(String nameKey,
int saveMillis)
Set a fixed savings rule at the cutover.
|
DateTimeZoneBuilder |
setStandardOffset(int standardOffset)
Sets the standard offset to use for newly added rules until the next
cutover is added.
|
DateTimeZone |
toDateTimeZone(String id,
boolean outputID)
Processes all the rules and builds a DateTimeZone.
|
public DateTimeZoneBuilder addCutover(int year, char mode, int monthOfYear, int dayOfMonth, int dayOfWeek, boolean advanceDayOfWeek, int millisOfDay)
year - year of cutovermode - 'u' - cutover is measured against UTC, 'w' - against wall
offset, 's' - against standard offset.dayOfMonth - if negative, set to ((last day of month) - ~dayOfMonth).
For example, if -1, set to last day of monthdayOfWeek - if 0, ignoreadvanceDayOfWeek - if dayOfMonth does not fall on dayOfWeek, advance to
dayOfWeek when true, retreat when false.millisOfDay - additional precision for specifying time of day of
cutoverpublic DateTimeZoneBuilder setStandardOffset(int standardOffset)
public DateTimeZoneBuilder setFixedSavings(String nameKey, int saveMillis)
public DateTimeZoneBuilder addRecurringSavings(String nameKey, int saveMillis, int fromYear, int toYear, char mode, int monthOfYear, int dayOfMonth, int dayOfWeek, boolean advanceDayOfWeek, int millisOfDay)
nameKey - name key of new rulesaveMillis - milliseconds to add to standard offsetfromYear - First year that rule is in effect. MIN_VALUE indicates
beginning of time.toYear - 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.dayOfMonth - if negative, set to ((last day of month) - ~dayOfMonth).
For example, if -1, set to last day of monthdayOfWeek - if 0, ignoreadvanceDayOfWeek - if dayOfMonth does not fall on dayOfWeek, advance to
dayOfWeek when true, retreat when false.millisOfDay - additional precision for specifying time of day of
transitionspublic DateTimeZone toDateTimeZone(String id, boolean outputID)
id - time zone id to assignoutputID - true if the zone id should be outputCopyright © 2013 os-cillation GmbH. All rights reserved.