title: Why do java.time.ZoneOffset instances sort 'backwards'?
body: <p>From the <a href="https://docs.oracle.com/javase/8/docs/api/java/time/ZoneOffset.html#compareTo-java.time.ZoneOffset-" rel="nofollow noreferrer">documentation</a>:</p>
  
  <blockquote>
    <p>The offsets are compared in the order that they occur for the same time of day around the world. Thus, an offset of +10:00 comes before an offset of +09:00 and so on down to -18:00.</p>
  </blockquote>
  
  <p>Does anyone know the reason they are ordered this way?  It seems counter-intuitive as it is the opposite of the order of the numerical value of the offset.  It is also the opposite of the order they would appear, reading left-to-right, on a GMT/UTC+0 centred map.</p>
  
  <p>(Aside: I don't understand why the quoted documentation refers to "down to -18:00" either.  -12:00 or -24:00 I'd understand.  Why -18:00?  If you print out the offsets of all the supported <code>java.time.ZoneId</code> time zones they range from -11:00 to +12:00.)</p>
  
  <p>UPDATE:  An answer to my aside.  From elsewhere in the same documentation:</p>
  
  <blockquote>
    <p>In 2008, time-zone offsets around the world extended from -12:00 to +14:00. To prevent any problems with that range being extended, yet still provide validation, the range of offsets is restricted to -18:00 to 18:00 inclusive. </p>
  </blockquote>