code: private List<GregorianCalendar> parseDates(String value) {
          String[] parts = value.split(",");
          List<GregorianCalendar> result = new ArrayList<>();
          for (String part : parts) {
              if (part.isEmpty()) {
                  continue;
              }
              String[] subparts = part.split(":");
              GregorianCalendar cal = new GregorianCalendar();
              for (int i = 0; i < subparts.length; i++) {
                  switch (i) {
                      case 0:
                          cal.set(GregorianCalendar.HOUR_OF_DAY, Integer.parseInt(subparts[i]));
                          break;
                      case 1:
                          cal.set(GregorianCalendar.MINUTE, Integer.parseInt(subparts[i]));
                          break;
                      case 2:
                          cal.set(GregorianCalendar.SECOND, Integer.parseInt(subparts[i]));
                          break;
                      case 3:
                          cal.set(GregorianCalendar.MILLISECOND, Integer.parseInt(subparts[i]));
                          break;
                  }
              }
              result.add(cal);
          }
          return result;
      }
docs: Parse the dates of type HH:mm:ss:nnn, whereas minutes and smaller are
  optional.
  
  @param value the input text
  @return the parsed