code: public ZonedDateTime intoZonedDateTimeOrUse(ZoneId fallback){
          try { return intoZonedDateTime(); }
          catch (RuntimeException ex) { return intoLocalDateTime().atZone(fallback); }
      }
docs: Converts to string & permissively parses as a date, uses parsed time zone or falls back on input
  defaults day->1, month->1, hour->0, minute->0, second->0, nanoseconds->0, time-zone->input
  @param fallback time zone to use if value has none
  @throws java.time.format.DateTimeParseException converted string is in an invalid format