docs: @Override public void updateTime(final ZonedDateTime TIME) {
          if (getSkinnable().isDiscreteHours()) {
              hourRotate.setAngle(TIME.getHour() * 30);
          } else {
              hourRotate.setAngle(0.5 * (60 * TIME.getHour() + TIME.getMinute()));
          }
  
          if (getSkinnable().isDiscreteMinutes()) {
              minuteRotate.setAngle(TIME.getMinute() * 6);
          } else {
              minuteRotate.setAngle(TIME.getMinute() * 6 + TIME.getSecond() * 0.1);
          }
  
          if (second.isVisible()) {
              if (getSkinnable().isDiscreteSeconds()) {
                  secondRotate.setAngle(TIME.getSecond() * 6);
              } else {
                  secondRotate.setAngle(TIME.getSecond() * 6 + TIME.get(ChronoField.MILLI_OF_SECOND) * 0.006);
              }
          }
  
          if (text.isVisible()) {
              text.setText(TIME_FORMATTER.format(TIME));
              Helper.adjustTextSize(text, 0.6 * size, size * 0.12);
              text.relocate((size - text.getLayoutBounds().getWidth()) * 0.5, size * 0.6);
          }
  
          if (dateText.isVisible()) {
              dateText.setText(DATE_FORMATER.format(TIME).toUpperCase());
              Helper.adjustTextSize(dateText, 0.3 * size, size * 0.05);
              dateText.relocate(((size * 0.5) - dateText.getLayoutBounds().getWidth()) * 0.5 + (size * 0.45), (size - dateText.getLayoutBounds().getHeight()) * 0.5);
          }
  
          // Show all alarms within the next hour
          if (TIME.getMinute() == 0 && TIME.getSecond() == 0) Helper.drawAlarms(getSkinnable(), size, 0.02, 0.45, alarmMap, DATE_TIME_FORMATTER, TIME);
  
          // Highlight Areas and Sections
          if (highlightAreas | highlightSections) {
              sectionsAndAreasCtx.clearRect(0, 0, size, size);
              if (areasVisible) Helper.drawTimeAreas(getSkinnable(), sectionsAndAreasCtx, areas, size, 0.03, 0.03, 0.94, 0.94);
              if (sectionsVisible) Helper.drawTimeSections(getSkinnable(), sectionsAndAreasCtx, sections, size, 0.065, 0.065, 0.87, 0.87, 0.07);
          }
      }