toHumanizedString method

String toHumanizedString()

1:02:34 or 2:05 — no forced padding on leading minute

Implementation

String toHumanizedString() {
  final abs = this.abs();
  final h = abs.inHours;
  final m = abs.inMinutes % 60;
  final s = abs.inSeconds % 60;
  final mm = '$m'.padLeft(2, '0');
  final ss = '$s'.padLeft(2, '0');
  final body = h > 0 ? '$h:$mm:$ss' : '$m:$ss';
  return isNegative ? '-$body' : body;
}