Beispiel #1
0
  public static DateValue parseDateString(String dateString) {
    if (dateString == null) return null;
    DateValue dv = new DateValue();

    if (dateString.length() == 4) {
      dv.setYearString(dateString);
      return dv;
    }

    if (dateString.indexOf('/') < 0)
      throw new RuntimeException(
          "Unknown format, expected format is 'mm/dd/yyyy' or 'mm/yyyy' or 'yyyy'");

    String[] dateParts = dateString.split("/");
    int size = dateParts.length;
    // validate year
    if (dateParts[size - 1].length() != 4)
      throw new RuntimeException(
          "Unknown format, expected format is 'mm/dd/yyyy' or 'mm/yyyy' or 'yyyy'");

    if (size == 2) {
      if (dateParts[0].length() != 2)
        throw new RuntimeException(
            "Unknown format, expected format is 'mm/dd/yyyy' or 'mm/yyyy' or 'yyyy'");

      dv.setMonthString(dateParts[0]);
      dv.setYearString(dateParts[1]);

    } else if (size == 3) {
      if (dateParts[0].length() != 2)
        throw new RuntimeException(
            "Unknown format, expected format is 'mm/dd/yyyy' or 'mm/yyyy' or 'yyyy'");
      if (dateParts[1].length() != 2)
        throw new RuntimeException(
            "Unknown format, expected format is 'mm/dd/yyyy' or 'mm/yyyy' or 'yyyy'");

      dv.setMonthString(dateParts[0]);
      dv.setDayString(dateParts[1]);
      dv.setYearString(dateParts[2]);
    } else {
      return null;
    }

    return dv;
  }