tryParseDuration method

Duration? tryParseDuration()

Tries to parse the string as a duration in the format HH:MM:SS.SSS.

Implementation

Duration? tryParseDuration() {
  final a = this.split(':');
  if (a.length != 3) return null;
  final b = a[2].split('.');
  if (b.length != 2) return null;
  final c = [...a.sublist(0, 2), ...b];
  if (c.length != 4) return null;
  final hours = int.tryParse(c[0]);
  if (hours == null) return null;
  final minutes = int.tryParse(c[1]);
  if (minutes == null) return null;
  final seconds = int.tryParse(c[2]);
  if (seconds == null) return null;
  final microseconds = int.tryParse(c[3]);
  if (microseconds == null) return null;
  return Duration(
    hours: hours,
    minutes: minutes,
    seconds: seconds,
    microseconds: microseconds,
  );
}