| 
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.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");
 
ZoneInfoCompiler, 
ZoneInfoProvider| Constructor Summary | |
DateTimeZoneBuilder()
 | 
|
| Method Summary | |
 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.  | 
static DateTimeZone | 
readFrom(DataInput in,
         String id)
Decodes a built DateTimeZone from the given stream, as encoded by writeTo.  | 
static DateTimeZone | 
readFrom(InputStream in,
         String id)
Decodes a built DateTimeZone from the given stream, as encoded by writeTo.  | 
 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.  | 
 void | 
writeTo(String zoneID,
        DataOutput out)
Encodes a built DateTimeZone to the given stream.  | 
 void | 
writeTo(String zoneID,
        OutputStream out)
Encodes a built DateTimeZone to the given stream.  | 
| Methods inherited from class java.lang.Object | 
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Constructor Detail | 
public DateTimeZoneBuilder()
| Method Detail | 
public static DateTimeZone readFrom(InputStream in,
                                    String id)
                             throws IOException
in - input stream to read encoded DateTimeZone from.id - time zone id to assign
IOException
public static DateTimeZone readFrom(DataInput in,
                                    String id)
                             throws IOException
in - input stream to read encoded DateTimeZone from.id - time zone id to assign
IOException
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
 transitions
public DateTimeZone toDateTimeZone(String id,
                                   boolean outputID)
id - time zone id to assignoutputID - true if the zone id should be output
public void writeTo(String zoneID,
                    OutputStream out)
             throws IOException
out - output stream to receive encoded DateTimeZone.
IOException
public void writeTo(String zoneID,
                    DataOutput out)
             throws IOException
out - output stream to receive encoded DateTimeZone.
IOException
  | 
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||