code: private static int offsetFieldValue(ZoneOffset offset, TemporalField field) {
          int offsetSeconds = offset.getTotalSeconds();
          int value = LocalTime.ofSecondOfDay(Math.abs(offsetSeconds)).get(field);
          return offsetSeconds < 0 ? value * -1 : value;
      }
docs: Returns the value of the provided field for the ZoneOffset as if the ZoneOffset's
  hours/minutes/seconds were reckoned as a LocalTime.