code: public static boolean refresh() {
          boolean changed = false;
          for (ZoneRulesProvider provider : PROVIDERS) {
              changed |= provider.provideRefresh();
          }
          return changed;
      }
docs: Refreshes the rules from the underlying data provider.
  <p>
  This method allows an application to request that the providers check
  for any updates to the provided rules.
  After calling this method, the offset stored in any {@link ZonedDateTime}
  may be invalid for the zone ID.
  <p>
  Dynamic update of rules is a complex problem and most applications
  should not use this method or dynamic rules.
  To achieve dynamic rules, a provider implementation will have to be written
  as per the specification of this class.
  In addition, instances of {@code ZoneRules} must not be cached in the
  application as they will become stale. However, the boolean flag on
  {@link #provideRules(String, boolean)} allows provider implementations
  to control the caching of {@code ZoneId}, potentially ensuring that
  all objects in the system see the new rules.
  Note that there is likely to be a cost in performance of a dynamic rules
  provider. Note also that no dynamic rules provider is in this specification.
  
  @return true if the rules were updated
  @throws ZoneRulesException if an error occurs during the refresh