Why the zone offset? I think this is what makes the test fails. For the test instances you are using a zone offset of 8 via _OffsetTime.now( ZoneId )_, whereas in the validator itself you are using the default time zone via  _OffsetTime.now_.