dart - Formatting a Duration like HH:mm:ss
问题描述
Is there a good way to format a Duration in something like hh:mm:ss, without having to deal with time zones?
I tried this:
DateTime durationDate = DateTime.fromMillisecondsSinceEpoch(0);
String duration = DateFormat('hh:mm:ss').format(durationDate);
But I always get 1 hour to much, in this case it would say 01:00:00
And When I do this:
Duration(milliseconds: 0).toString();
I get this: 0:00:00.000000
解决方案
You can use Duration
and implement this method:
String _printDuration(Duration duration) {
String twoDigits(int n) => n.toString().padLeft(2, "0");
String twoDigitMinutes = twoDigits(duration.inMinutes.remainder(60));
String twoDigitSeconds = twoDigits(duration.inSeconds.remainder(60));
return "${twoDigits(duration.inHours)}:$twoDigitMinutes:$twoDigitSeconds";
}
Usage:
final now = Duration(seconds: 30);
print("${_printDuration(now)}");
推荐阅读
- powershell - 我将如何重写这个硬币翻转循环
- python - 如何(字面上)逐字符读取文件?
- jquery-ui - 是否有与 JqueryUI 等效的 HTML DOM 可选?
- javascript - 使用电子在 app.asar 中包含额外文件
- python - 尝试保存时获取 FOREIGN KEY 约束失败,但相同的代码适用于 shell
- javascript - 如何遍历 HTML 元素并填充 Json 对象?
- python - 如何在 Python 中使用 geopandas 测试 Point 是否在 Polygon/Multipolygon 中?
- python - 取熊猫数据框中多列的平均值
- javascript - React-chartjs-2 动态更新高度
- php - 在我的 Laravel 应用程序中为用户集成 OnlieMeeting MS (Graph api)