code: public int compareByMoment(ZonalDateTime zdt) {
  
          int cmp = this.moment.compareTo(zdt.moment);
  
          if (cmp == 0) {
              cmp = this.timestamp.compareTo(zdt.timestamp);
          }
  
          return cmp;
  
      }
docs: /*[deutsch]
  <p>Vergleicht diese Instanz mit der angegebenen Instanz auf der globalen Zeitachse (UTC). </p>
  
  <p>Die lokalen Zeitstempel werden genau dann in Betracht gezogen, wenn die UTC-Zeitpunkte gleich sind.
  Beispiel: </p>
  
  <pre>
  List&lt;String&gt; dates =
  Arrays.asList(&quot;Tue, 29 Feb 2016 17:45:00 CET&quot;, &quot;Tue, 29 Feb 2016 16:00:00 EST&quot;);
  TemporalFormatter&lt;Moment&gt; formatter =
  ChronoFormatter.ofMomentPattern(
  &quot;EEE, dd MMM yyyy HH:mm:ss z&quot;, PatternType.CLDR, Locale.ENGLISH, ZonalOffset.UTC);
  ZonalDateTime maxDate =
  dates.stream()
  .map(s -&gt; ZonalDateTime.parse(s, formatter))
  .max(ZonalDateTime::compareByMoment)
  .get();
  System.out.println(maxDate); // 2016-02-29T16UTC-05:00[America/New_York]
  </pre>
  
  @param   zdt     other instance to be compared with
  @return  negative, zero or positive integer if this instance is earlier, simultaneous or later than given arg
  @see     #compareByLocalTimestamp(ZonalDateTime)
  @since   3.16/4.13