toReadableString method

String toReadableString()

toReadableString will return the duration in a human-readable format like "01:02:03" if the "HH" is zero, it will return only minutes and seconds example:

Duration(seconds: 123).toReadableString() // 01:02:03
Duration(seconds: 50034).toReadableString() // 02:04:14

Implementation

String toReadableString() {
  var blocks = <String>[];
  int hours = inHours.remainder(24);
  int minutes = inMinutes.remainder(60);
  int seconds = inSeconds.remainder(60);
  if (hours > 0) {
    blocks.add(
        "${hours.toString().padLeft(2, "0")}:${minutes.toString().padLeft(2, "0")}:${seconds.toString().padLeft(2, "0")}");
  }
  blocks.addAll([
    minutes.toString().padLeft(2, "0"),
    seconds.toString().padLeft(2, "0")
  ]);
  return blocks.join(":");
}