Compatibility between Instant and ZonedDateTime : <p>It is my understanding that a <code>ZonedDateTime</code> is really an enhanced version of an <code>Instant</code>. It has all the data an <code>Instant</code> has (precise value along UTC timeline), plus time zone information. So my naïve assumption was that a <code>ZonedDateTime</code> <em>is-an</em> <code>Instant</code> and that any method taking an <code>Instant</code> will happily take a <code>ZonedDateTime</code> instead. Furthermore, I expected <code>isBefore()</code>, <code>isAfter()</code> etc. to work seamlessly between <code>Instant</code>s and <code>ZonedDateTime</code>s.</p>

<p>Looking at the API documentation for <a href="http://docs.oracle.com/javase/8/docs/api/index.html?java/time/Instant.html" rel="noreferrer"><code>Instant</code></a> and <a href="http://docs.oracle.com/javase/8/docs/api/index.html?java/time/ZonedDateTime.html" rel="noreferrer"><code>ZonedDateTime</code></a>, none of this is the case. I can compare <code>Instant</code>s with <code>Instant</code>s and <code>ZonedDateTime</code>s with <code>ZonedDateTime</code>s, but the two classes seem to be incompatible. What's more, third-party code like ThreeTen-Extra's <a href="http://www.threeten.org/threeten-extra/apidocs/index.html?org/threeten/extra/Interval.html" rel="noreferrer"><code>Interval</code></a> seem to work exclusively with <code>Instant</code>s.</p>

<p>Is there a reason why <code>Instant</code> and <code>ZonedDateTime</code> are not meant to be mixed?</p>
