--- old/src/java.base/share/classes/java/time/zone/ZoneOffsetTransitionRule.java 2015-05-04 12:13:54.540750563 +0200 +++ new/src/java.base/share/classes/java/time/zone/ZoneOffsetTransitionRule.java 2015-05-04 12:13:54.444750380 +0200 @@ -167,6 +167,7 @@ * @return the rule, not null * @throws IllegalArgumentException if the day of month indicator is invalid * @throws IllegalArgumentException if the end of day flag is true when the time is not midnight + * @throws IllegalArgumentException if {@code time.getNano()} returns non-zero value */ public static ZoneOffsetTransitionRule of( Month month, @@ -190,6 +191,9 @@ if (timeEndOfDay && time.equals(LocalTime.MIDNIGHT) == false) { throw new IllegalArgumentException("Time must be midnight when end of day flag is true"); } + if (time.getNano() != 0) { + throw new IllegalArgumentException("Time's nano-of-second must be zero"); + } return new ZoneOffsetTransitionRule(month, dayOfMonthIndicator, dayOfWeek, time, timeEndOfDay, timeDefnition, standardOffset, offsetBefore, offsetAfter); }