formatDateTimeString<T> function
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,
};
}