precisionFromDateTimeString function
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;
}
}