convertHHMMTimeStringToDateTime method
Implementation
DateTime convertHHMMTimeStringToDateTime(DateTime? dateTheTimeIsBasedOn) {
final trimmed = trim();
final parts = trimmed.split(':');
if (parts.length != 2) {
throw const FormatException('Unrecognized date format');
}
bool isNumeric(String s) =>
s.isNotEmpty && s.codeUnits.every((c) => c >= 48 && c <= 57);
if (!isNumeric(parts[0]) ||
!isNumeric(parts[1]) ||
parts[0].length > 2 ||
parts[1].length > 2) {
throw const FormatException('Unrecognized date format');
}
final int hour = int.parse(parts[0]);
final int minute = int.parse(parts[1]);
if (dateTheTimeIsBasedOn != null) {
return dateTheTimeIsBasedOn.copyWith(
hour: hour,
minute: minute,
second: 0,
millisecond: 0,
microsecond: 0,
isUtc: true,
);
}
//else, return the time in DateTime based on now's date
return DateTime.now().toUtc().copyWith(
hour: hour,
minute: minute,
second: 0,
millisecond: 0,
microsecond: 0,
);
}