docs: @Override public void updateTime(final ZonedDateTime TIME) {
          if (dateText.isVisible()) {
              dateText.setText(dateTextFormatter.format(TIME));
              Helper.adjustTextSize(dateText, 0.6 * size, size * 0.08);
              dateText.relocate((size - dateText.getLayoutBounds().getWidth()) * 0.5, size * 0.22180451);
          }
          if (dateNumbers.isVisible()) {
              dateNumbers.setText(dateNumberFormatter.format(TIME));
              Helper.adjustTextSize(dateNumbers, 0.6 * size, size * 0.08);
              dateNumbers.relocate((size -dateNumbers.getLayoutBounds().getWidth()) * 0.5, size * 0.68984962);
          }
  
          hour.setText(HOUR_FORMATTER.format(TIME));
          Helper.adjustTextSize(hour, 0.4 * size, 0.328 * size);
          hour.relocate(0.136 * size, (size - hour.getLayoutBounds().getHeight()) * 0.5);
  
          minute.setText(MINUTE_FORMATTER.format(TIME));
          Helper.adjustTextSize(minute, 0.4 * size, 0.328 * size);
          minute.relocate(0.544 * size, (size - minute.getLayoutBounds().getHeight()) * 0.5);
  
          if (secondBackgroundCircle.isVisible()) {
              secondArc.setLength((-6 * TIME.getSecond()));
              if (clock.isDiscreteSeconds()) {
                  secondArc.setLength((-6 * TIME.getSecond()));
              } else {
                  secondArc.setLength((-6 * TIME.getSecond() -TIME.get(ChronoField.MILLI_OF_SECOND) * 0.006));
              }
          }
      }