formatDateTimeString<T> function

Map<String, int?> formatDateTimeString<T>(
  1. String dateTimeString
)

Implementation

Map<String, int?> formatDateTimeString<T>(String dateTimeString) {
  final RegExpMatch? dateTimeRegExp = dateTimeExp.firstMatch(dateTimeString);
  final String? fractionString = dateTimeRegExp?.namedGroup('fraction');
  return <String, int?>{
    'year': int.tryParse(dateTimeRegExp?.namedGroup('year') ?? ''),
    'month': int.tryParse(dateTimeRegExp?.namedGroup('month') ?? ''),
    'day': int.tryParse(dateTimeRegExp?.namedGroup('day') ?? ''),
    'hour': int.tryParse(dateTimeRegExp?.namedGroup('hour') ?? ''),
    'minute': int.tryParse(dateTimeRegExp?.namedGroup('minute') ?? ''),
    'second': int.tryParse(dateTimeRegExp?.namedGroup('second') ?? ''),
    'millisecond': fractionString == null
        ? null
        : fractionString.length >= 3
            ? int.tryParse(fractionString.substring(0, 3))
            : int.tryParse(fractionString),
    'microsecond': fractionString == null
        ? null
        : fractionString.length > 3
            ? fractionString.length <= 6
                ? int.tryParse(
                    fractionString.substring(3, fractionString.length))
                : int.tryParse(fractionString.substring(3, 6))
            : null,
    'timeZoneOffset':
        stringToTimeZoneOffset(dateTimeRegExp?.namedGroup('timezone')),
    'isUtc': (dateTimeRegExp?.namedGroup('timezone')?.contains('Z') ?? false)
        ? 0
        : 1,
  };
}