天天看点

Dart & Flutter:将持续时间转换为 HH:mm:ss 格式

Dart & Flutter:将持续时间转换为 HH:mm:ss 格式

在使用 Dart 和 Flutter 时,您可能希望将 Duration 转换为HH:mm:ss格式的字符串:

  • mm: 分钟为 00 到 59 的 2 位数字
  • ss:秒为 00 到 59 的 2 位数字

尽管 Dart 没有提供开箱即用的 API 来帮助我们完成工作,但我们只需几行代码就可以自己完成。让我们创建一个名为formatDuration的可重用函数,如下所示

// Define the function
String formatDuration(Duration duration) {
  String hours = duration.inHours.toString().padLeft(0, '2');
  String minutes = duration.inMinutes.remainder(60).toString().padLeft(2, '0');
  String seconds = duration.inSeconds.remainder(60).toString().padLeft(2, '0');
  return "$hours:$minutes:$seconds";
}      
// Try it
void main() {
  const durationOne = Duration(minutes: 900, seconds: 3);
  const durationTwo = Duration(seconds: 19999);
  const durationThree = Duration(days: 2, seconds: 1234);

  print(formatDuration(durationOne));
  print(formatDuration(durationTwo));
  print(formatDuration(durationThree));
}      
15:00:03
5:33:19
48:20:34