parseDuration static method
Tries to parse a Duration.
- Returns
def
ifvalue
is invalid.
Implementation
static Duration? parseDuration(Object? value, [Duration? def]) {
if (value == null) return def;
if (value is Duration) {
return value;
} else if (value is int) {
return Duration(milliseconds: value);
} else {
var s = '$value'.trim().replaceAll(_regexpSpaces, ':');
var parts = s.split(_regexpTimeSeparators);
var ns = parts.map((e) => int.tryParse(e) ?? 0).toList();
var hour = ns.isNotEmpty ? ns[0] : 0;
var min = ns.length > 1 ? ns[1] : 0;
var sec = ns.length > 2 ? ns[2] : 0;
var ms = ns.length > 3 ? ns[3] : 0;
var mc = ns.length > 4 ? ns[4] : 0;
return Duration(
hours: hour,
minutes: min,
seconds: sec,
milliseconds: ms,
microseconds: mc);
}
}