/** * Decodes a built DateTimeZone from the given stream, as encoded by * writeTo. * * @param in input stream to read encoded DateTimeZone from. * @param id time zone id to assign */ public static DateTimeZone readFrom(InputStream in, String id) throws IOException { if (in instanceof DataInput) { return readFrom((DataInput)in, id); } else { return readFrom((DataInput)new DataInputStream(in), id); } }
DateTimeZoneBuilder builder = new DateTimeZoneBuilder(); zone.addToBuilder(builder, iRuleSets); DateTimeZone tz = builder.toDateTimeZone(zone.iName, true); if (test(tz.getID(), tz)) { map.put(tz.getID(), tz); System.out.println("Cannot find source zone '" + baseId + "' to link alias '" + alias + "' to"); } else { DateTimeZoneBuilder builder = new DateTimeZoneBuilder(); sourceZone.addToBuilder(builder, iRuleSets); DateTimeZone revived = builder.toDateTimeZone(alias, true); if (test(revived.getID(), revived)) { map.put(revived.getID(), revived);
/** * Adds a cutover to the builder. */ public void addCutover(DateTimeZoneBuilder builder, int year) { builder.addCutover(year, iZoneChar, iMonthOfYear, iDayOfMonth, iDayOfWeek, iAdvanceDayOfWeek, iMillisOfDay); }
builder.setStandardOffset(zone.iOffsetMillis); builder.setFixedSavings(zone.iFormat, 0); } else { try { builder.setStandardOffset(zone.iOffsetMillis); builder.setFixedSavings(zone.iFormat, saveMillis);
private void writeZone(File outputDir, DateTimeZoneBuilder builder, DateTimeZone tz) throws IOException { if (ZoneInfoLogger.verbose()) { System.out.println("Writing " + tz.getID()); } File file = new File(outputDir, tz.getID()); if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } OutputStream out = new FileOutputStream(file); try { builder.writeTo(tz.getID(), out); } finally { out.close(); } // Test if it can be read back. InputStream in = new FileInputStream(file); DateTimeZone tz2 = DateTimeZoneBuilder.readFrom(in, tz.getID()); in.close(); if (!tz.equals(tz2)) { System.out.println("*e* Error in " + tz.getID() + ": Didn't read properly from file"); } }
for (int i=0; i<iZones.size(); i++) { Zone zone = iZones.get(i); DateTimeZoneBuilder builder = new DateTimeZoneBuilder(); zone.addToBuilder(builder, iRuleSets); final DateTimeZone original = builder.toDateTimeZone(zone.iName, true); DateTimeZone tz = original; if (test(tz.getID(), tz)) { builder.writeTo(zone.iName, out); } finally { out.close(); DateTimeZone tz2 = DateTimeZoneBuilder.readFrom(in, tz.getID()); in.close();
continue; addTransition(transitions, next); millis = next.getMillis(); saveMillis = next.getSaveMillis(); if (addTransition(transitions, next) && tailZone != null) { return buildFixedZone(id, "UTC", 0, 0); return buildFixedZone(id, tr.getNameKey(), tr.getWallOffset(), tr.getStandardOffset());
/** * Sets the standard offset to use for newly added rules until the next * cutover is added. * @param standardOffset the standard offset in millis */ public DateTimeZoneBuilder setStandardOffset(int standardOffset) { getLastRuleSet().setStandardOffset(standardOffset); return this; }
static OfYear readFrom(DataInput in) throws IOException { return new OfYear((char)in.readUnsignedByte(), (int)in.readUnsignedByte(), (int)in.readByte(), (int)in.readUnsignedByte(), in.readBoolean(), (int)readMillis(in)); }
/** * Adds a recurring savings rule to the builder. */ public void addRecurring(DateTimeZoneBuilder builder, String nameKey, int saveMillis, int fromYear, int toYear) { builder.addRecurringSavings(nameKey, saveMillis, fromYear, toYear, iZoneChar, iMonthOfYear, iDayOfMonth, iDayOfWeek, iAdvanceDayOfWeek, iMillisOfDay); }
return addTransition(transitions, adjusted);
builder.setStandardOffset(standardMillis);
for (int i=0; i<iZones.size(); i++) { Zone zone = iZones.get(i); DateTimeZoneBuilder builder = new DateTimeZoneBuilder(); zone.addToBuilder(builder, iRuleSets); final DateTimeZone original = builder.toDateTimeZone(zone.iName, true); DateTimeZone tz = original; if (test(tz.getID(), tz)) { builder.writeTo(zone.iName, out); } finally { out.close(); DateTimeZone tz2 = DateTimeZoneBuilder.readFrom(in, tz.getID()); in.close();
builder.setStandardOffset(zone.iOffsetMillis); builder.setFixedSavings(zone.iFormat, 0); } else { try { builder.setStandardOffset(zone.iOffsetMillis); builder.setFixedSavings(zone.iFormat, saveMillis);
continue; addTransition(transitions, next); millis = next.getMillis(); saveMillis = next.getSaveMillis(); if (addTransition(transitions, next) && tailZone != null) { return buildFixedZone(id, "UTC", 0, 0); return buildFixedZone(id, tr.getNameKey(), tr.getWallOffset(), tr.getStandardOffset());
/** * Set a fixed savings rule at the cutover. */ public DateTimeZoneBuilder setFixedSavings(String nameKey, int saveMillis) { getLastRuleSet().setFixedSavings(nameKey, saveMillis); return this; }
static OfYear readFrom(DataInput in) throws IOException { return new OfYear((char)in.readUnsignedByte(), (int)in.readUnsignedByte(), (int)in.readByte(), (int)in.readUnsignedByte(), in.readBoolean(), (int)readMillis(in)); }
/** * Adds a recurring savings rule to the builder. */ public void addRecurring(DateTimeZoneBuilder builder, String nameKey, int saveMillis, int fromYear, int toYear) { builder.addRecurringSavings(nameKey, saveMillis, fromYear, toYear, iZoneChar, iMonthOfYear, iDayOfMonth, iDayOfWeek, iAdvanceDayOfWeek, iMillisOfDay); }
return addTransition(transitions, adjusted);
private void writeZone(File outputDir, DateTimeZoneBuilder builder, DateTimeZone tz) throws IOException { if (ZoneInfoLogger.verbose()) { System.out.println("Writing " + tz.getID()); } File file = new File(outputDir, tz.getID()); if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } OutputStream out = new FileOutputStream(file); try { builder.writeTo(tz.getID(), out); } finally { out.close(); } // Test if it can be read back. InputStream in = new FileInputStream(file); DateTimeZone tz2 = DateTimeZoneBuilder.readFrom(in, tz.getID()); in.close(); if (!tz.equals(tz2)) { System.out.println("*e* Error in " + tz.getID() + ": Didn't read properly from file"); } }