code: private Optional<Calendar> cloneCalendar() {
          return calendar.map(Calendar::clone).map(x -> (Calendar) x);
      }
docs: Make a clone of a calendar.
  <p>Despite the fact that {@link Calendar} is used only for
  representing a time zone, some JDBC drivers actually use it
  for time calculations,</p>
  <p>Also {@link Calendar} is not immutable, which makes it
  thread-unsafe. Therefore we need to make a copy to avoid
  state mutation problems.</p>
  
  @return a clone of calendar, representing a database time zone