ZoneRules.getValidOffsets

Gets the offset applicable at the specified local date-time _in these rules. !(p) The mapping from a local date-time to an offset is not straightforward. There are three cases: !(ul) !(li)Normal, with one valid offset. For the vast majority of the year, the normal case applies, where there is a single valid offset for the local date-time.</li> !(li)Gap, with zero valid offsets. This is when clocks jump forward typically due to the spring daylight savings change from "winter" to "summer". In a gap there are local date-time values with no valid offset.</li> !(li)Overlap, with two valid offsets. This is when clocks are set back typically due to the autumn daylight savings change from "summer" to "winter". In an overlap there are local date-time values with two valid offsets.</li> </ul> Thus, for any given local date-time there can be zero, one or two valid offsets. This method returns that list of valid offsets, which is a list of size 0, 1 or 2. In the case where there are two offsets, the earlier offset is returned at index 0 and the later offset at index 1. !(p) There are various ways to handle the conversion from a {@code LocalDateTime}. One technique, using this method, would be: !(pre) List&lt;ZoneOffset&gt; validOffsets = rules.getOffset(localDT); if (validOffsets.size() == 1) { // Normal case: only one valid offset zoneOffset = validOffsets.get(0); } else { // Gap or Overlap: determine what to do from transition (which will be non-null) ZoneOffsetTransition trans = rules.getTransition(localDT); } </pre> !(p) In theory, it is possible for there to be more than two valid offsets. This would happen if clocks to be put back more than once _in quick succession. This has never happened _in the history of time-zones and thus has no special handling. However, if it were to happen, then the list would return more than 2 entries.

@param localDateTime the local date-time to query for valid offsets, not null, but null may be ignored if the rules have a single offset for all instants @return the list of valid offsets, may be immutable, not null

class ZoneRules
List!(ZoneOffset)
getValidOffsets

Meta