format method
Parses Duration to String according to the definition given in format.
The following parameters are available
formatで与えられた定義に従ってDurationをStringにパースします。
下記のパラメーターを利用することが可能です。
dDisplays days. 日付を表示します。HDisplays hours. 時間を表示します。mDisplay minutes. 分を表示します。sDisplay seconds. 秒を表示します。HHDisplays hours in two digits. 時間を2桁で表示します。mmDisplays minutes in two digits. 分を2桁で表示します。ssDisplays seconds in two digits. 秒を2桁で表示します。SDisplay milli-seconds. ミリ秒を表示します。MDisplay micro-seconds. マイクロ秒を表示します。
For example,
final duration = const Duration(days: 6, hours: 12);
print(duration.format("d : H")); // 6 : 12
Implementation
String format(String format) {
assert(format.isNotEmpty, "The format is empty.");
String twoDigits(int n) => n.toString().padLeft(2, "0");
String threeDigits(int n) => n.toString().padLeft(3, "0");
final hours = inHours.remainder(24);
final minutes = inMinutes.remainder(60);
final seconds = inSeconds.remainder(60);
final milliSeconds = inMilliseconds.remainder(1000);
final microSeconds = inMicroseconds.remainder(1000);
return format
.replaceAll("d", inDays.toString())
.replaceAll("HH", twoDigits(hours))
.replaceAll("mm", twoDigits(minutes))
.replaceAll("ss", twoDigits(seconds))
.replaceAll("H", hours.toString())
.replaceAll("m", minutes.toString())
.replaceAll("s", seconds.toString())
.replaceAll("S", threeDigits(milliSeconds))
.replaceAll("M", threeDigits(microSeconds));
}