code: private static Long getPreviousZoneTransitionTime(TimeZone tz, long base, long duration) {
          assert duration > 0;
  
          long upper = base;
          long lower = base - duration - 1;
          int offsetU = tz.getOffset(upper);
          int offsetL = tz.getOffset(lower);
          if (offsetU == offsetL) {
              return null;
          }
          return findPreviousZoneTransitionTime(tz, offsetU, upper, lower);
      }
docs: Find the previous zone transition within the specified duration.
  Note: This method is only used when TimeZone is NOT a BasicTimeZone.
  @param tz The time zone.
  @param base The base time, inclusive.
  @param duration The range of time evaluated.
  @return The time of the previous zone transition, or null if not available.