Instant::toISOString() / ZonedDateTime::toISOString returns value that is not RFC 3339 compliant, because it will omit seconds, when its value is zero.
This is causing portability issues, for example, such value is not accepted by java.time.Instant.parse.
Java sandbox
RFC 3339 format description