/** * {@inheritDoc} * * @stable ICU 3.8 */ @Override public boolean useDaylightTime() { // Note: This implementation returns true when // daylight saving time is used as of now or // after the next transition. long now = System.currentTimeMillis(); int[] offsets = new int[2]; getOffset(now, false, offsets); if (offsets[1] != 0) { return true; } // If DST is not used now, check if DST is used after the next transition TimeZoneTransition tt = getNextTransition(now, false); if (tt != null && tt.getTo().getDSTSavings() != 0) { return true; } return false; }
if (toRule.getDSTSavings() != 0) { return true;
private static long getTransitionTime(TimeZoneTransition tzt, boolean local, int NonExistingTimeOpt, int DuplicatedTimeOpt) { long time = tzt.getTime(); if (local) { time += getLocalDelta(tzt.getFrom().getRawOffset(), tzt.getFrom().getDSTSavings(), tzt.getTo().getRawOffset(), tzt.getTo().getDSTSavings(), NonExistingTimeOpt, DuplicatedTimeOpt); } return time; }
offsets[1] = rule.getDSTSavings();
int curDstSavings = curRule.getDSTSavings(); long nextTransitionTime = Grego.MAX_MILLIS; TimeZoneRule nextRule = null; (r.getName().equals(curRule.getName()) && r.getRawOffset() == curRule.getRawOffset() && r.getDSTSavings() == curRule.getDSTSavings())) { continue; Date d0 = finalRules[0].getNextStart(lastTransitionTime, curRule.getRawOffset(), curRule.getDSTSavings(), false); Date d1 = finalRules[1].getNextStart(lastTransitionTime, curRule.getRawOffset(), curRule.getDSTSavings(), false); if (d1.after(d0)) { historicTransitions.add(new TimeZoneTransition(d0.getTime(), curRule, finalRules[0]));
start = finalRule.getNextStart(lastStart.getTime(), r.getRawOffset(), r.getDSTSavings(), false);
if (tr1 != null && tr1.getTime() <= end && (tr1.getFrom().getRawOffset() + tr1.getFrom().getDSTSavings() == tr1.getTo().getRawOffset() + tr1.getTo().getDSTSavings()) && (tr1.getFrom().getDSTSavings() != 0 && tr1.getTo().getDSTSavings() != 0)) { tr1 = getNextTransition(tr1.getTime(), false); } else { if (tr2 != null && tr2.getTime() <= end && (tr2.getFrom().getRawOffset() + tr2.getFrom().getDSTSavings() == tr2.getTo().getRawOffset() + tr2.getTo().getDSTSavings()) && (tr2.getFrom().getDSTSavings() != 0 && tr2.getTo().getDSTSavings() != 0)) { tr2 = ((BasicTimeZone)tz).getNextTransition(tr2.getTime(), false); } else { if (tr1.getTo().getRawOffset() + tr1.getTo().getDSTSavings() != tr2.getTo().getRawOffset() + tr2.getTo().getDSTSavings() || tr1.getTo().getDSTSavings() != 0 && tr2.getTo().getDSTSavings() == 0 || tr1.getTo().getDSTSavings() == 0 && tr2.getTo().getDSTSavings() != 0) { return false; tr1.getTo().getDSTSavings() != tr2.getTo().getDSTSavings()) { return false;
TimeZoneRule to = result.getTo(); if (from.getRawOffset() == to.getRawOffset() && from.getDSTSavings() == to.getDSTSavings()) {
TimeZoneRule to = result.getTo(); if (from.getRawOffset() == to.getRawOffset() && from.getDSTSavings() == to.getDSTSavings()) {
String initialName = tr.getFrom().getName(); int initialRaw = tr.getFrom().getRawOffset(); int initialDst = tr.getFrom().getDSTSavings(); if (((tr.getFrom().getDSTSavings() == 0 && tr.getTo().getDSTSavings() != 0) || (tr.getFrom().getDSTSavings() != 0 && tr.getTo().getDSTSavings() == 0)) && date + MILLIS_PER_YEAR > nextTransitionTime) { annualRules = new AnnualTimeZoneRule[2]; + tr.getFrom().getRawOffset() + tr.getFrom().getDSTSavings(), null); int weekInMonth = Grego.getDayOfWeekInMonth(dtfields[0], dtfields[1], dtfields[2]); initialRaw, tr.getTo().getDSTSavings(), dtr, dtfields[0], AnnualTimeZoneRule.MAX_YEAR); if (((tr.getFrom().getDSTSavings() == 0 && tr.getTo().getDSTSavings() != 0) || (tr.getFrom().getDSTSavings() != 0 && tr.getTo().getDSTSavings() == 0)) && nextTransitionTime + MILLIS_PER_YEAR > tr.getTime()) { + tr.getFrom().getRawOffset() + tr.getFrom().getDSTSavings(), dtfields); weekInMonth = Grego.getDayOfWeekInMonth(dtfields[0], dtfields[1], dtfields[5], DateTimeRule.WALL_TIME); secondRule = new AnnualTimeZoneRule(tr.getTo().getName(), tr.getTo().getRawOffset(), tr.getTo().getDSTSavings(), dtr, dtfields[0] - 1, AnnualTimeZoneRule.MAX_YEAR);
tzt.getTo().getRawOffset(), tzt.getTo().getDSTSavings()); filteredRules.add(initial); isProcessed.set(0); initial.getDSTSavings(), false); if (d == null) { isProcessed.set(i); tzt.getFrom().getDSTSavings()); if (firstStart.getTime() > start) { t -= tzt.getFrom().getDSTSavings(); AnnualTimeZoneRule ar = (AnnualTimeZoneRule)toRule; Date firstStart = ar.getFirstStart(tzt.getFrom().getRawOffset(), tzt.getFrom().getDSTSavings()); if (firstStart.getTime() == tzt.getTime()) {
&& from.getDSTSavings() == to.getDSTSavings()) { return getPreviousTransition(startTime, false);
&& from.getDSTSavings() == to.getDSTSavings()) { return getNextTransition(startTime, false);
if (before != null && (date - before.getTime() < DST_CHECK_RANGE) && before.getFrom().getDSTSavings() != 0) { useStandard = false; } else { if (after != null && (after.getTime() - date < DST_CHECK_RANGE) && after.getTo().getDSTSavings() != 0) { useStandard = false;
t = tzt.getTime(); String name = tzt.getTo().getName(); boolean isDst = (tzt.getTo().getDSTSavings() != 0); int fromOffset = tzt.getFrom().getRawOffset() + tzt.getFrom().getDSTSavings(); int fromDSTSavings = tzt.getFrom().getDSTSavings(); int toOffset = tzt.getTo().getRawOffset() + tzt.getTo().getDSTSavings(); Grego.timeToFields(tzt.getTime() + fromOffset, dtfields); int weekInMonth = Grego.getDayOfWeekInMonth(dtfields[0], dtfields[1], dtfields[2]);
beforeSav = beforeTrs.getFrom().getDSTSavings(); if (beforeSav != 0) { break; afterSav = afterTrs.getTo().getDSTSavings(); if (afterSav != 0) { break;