code: @Nonnull
    public static WithZoneId extractDateTimeZone (@Nonnull final String sDate)
    {
      ValueEnforcer.notNull (sDate, "Date");
  
      final int nDateLen = sDate.length ();
      for (final PDTZoneID aSupp : PDTZoneID.getDefaultZoneIDs ())
      {
        final String sDTZ = aSupp.getZoneIDString ();
        if (sDate.endsWith (" " + sDTZ))
          return new WithZoneId (sDate.substring (0, nDateLen - (1 + sDTZ.length ())), aSupp.getZoneID ());
        if (sDate.endsWith (sDTZ))
          return new WithZoneId (sDate.substring (0, nDateLen - sDTZ.length ()), aSupp.getZoneID ());
      }
      return new WithZoneId (sDate, null);
    }
docs: Extract the time zone from the passed string. UTC and GMT are supported.
  
  @param sDate
  The date string.
  @return A non-<code>null</code> {@link WithZoneId}, where the remaining
  string to be parsed (never <code>null</code>) and and the extracted
  time zone (may be <code>null</code>) are contained.