precisionFromDateTimeString function

DateTimePrecision precisionFromDateTimeString(
  1. String inValue
)

Implementation

DateTimePrecision precisionFromDateTimeString(String inValue) {
  if (RegExp(
          r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T ]([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)\.\d{3}[+-](0[0-9]|1[0-3]):[0-5][0-9]$')
      .hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM_dd_T_HH_mm_ss_SSSZZ;
  } else if (RegExp(
          r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T ]([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)\.\d{3}Z$')
      .hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM_dd_T_HH_mm_ss_SSS_Z;
  } else if (RegExp(
          r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T ]([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)\.\d{3}$')
      .hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM_dd_T_HH_mm_ss_SSS;
  } else if (RegExp(
          r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T ]([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)[+-](0[0-9]|1[0-3]):[0-5][0-9]$')
      .hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM_dd_T_HH_mm_ssZZ;
  } else if (RegExp(
          r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T ]([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)Z$')
      .hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM_dd_T_HH_mm_ss_Z;
  } else if (RegExp(
          r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T ]([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)$')
      .hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM_dd_T_HH_mm_ss;
  } else if (RegExp(
          r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T ]([01][0-9]|2[0-3]):[0-5][0-9][+-](0[0-9]|1[0-3]):[0-5][0-9]$')
      .hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM_dd_T_HH_mmZZ;
  } else if (RegExp(
          r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T ]([01][0-9]|2[0-3]):[0-5][0-9]Z$')
      .hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM_dd_T_HH_mm_Z;
  } else if (RegExp(
          r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T ]([01][0-9]|2[0-3]):[0-5][0-9]$')
      .hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM_dd_T_HH_mm;
  } else if (RegExp(
          r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T ]([01][0-9]|2[0-3])[+-](0[0-9]|1[0-3]):[0-5][0-9]$')
      .hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM_dd_T_HHZZ;
  } else if (RegExp(
          r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T ]([01][0-9]|2[0-3])Z$')
      .hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM_dd_T_HH_Z;
  } else if (RegExp(
          r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T ]([01][0-9]|2[0-3])$')
      .hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM_dd_T_HH;
  } else if (RegExp(
          r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T[+-](0[0-9]|1[0-3]):[0-5][0-9]$')
      .hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM_dd_T_ZZ;
  } else if (RegExp(r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])TZ$')
      .hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM_dd_T_Z;
  } else if (RegExp(r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$')
      .hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM_dd;
  } else if (RegExp(r'^\d{4}-(0[1-9]|1[0-2])$').hasMatch(inValue)) {
    return DateTimePrecision.yyyy_MM;
  } else if (RegExp(r'^\d{4}$').hasMatch(inValue)) {
    return DateTimePrecision.yyyy;
  } else if (instantExp.hasMatch(inValue)) {
    return DateTimePrecision.instant;
  } else if (dateTimeExp.hasMatch(inValue)) {
    return DateTimePrecision.dateTime;
  } else {
    return DateTimePrecision.invalid;
  }
}