有没有一种好方法可以将持续时间格式化为类似hh:mm:ss的格式,而不必处理时区?

我试过这个:

DateTime durationDate = DateTime.fromMillisecondsSinceEpoch(0);
String duration = DateFormat('hh:mm:ss').format(durationDate);

但是我总是有1小时的时间,在这种情况下应该是01:00:00小时

当我这么做的时候:

Duration(milliseconds: 0).toString();

我知道了:0:00:00.000000美元

推荐答案

您可以使用Duration并实现此方法:

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";
}

用法:

final now = Duration(seconds: 30);
print("${_printDuration(now)}");

Flutter相关问答推荐

类型flatter doctor get zsh:未找到命令:macO中flatter

当MyChangeNotifier更改时如何计算函数,而无需在构建方法中进行不必要的调用- Flutter

如何创建一个按钮来在Ffltter Webview中转到上一页?

功能不起作用的Flutter 块复制

如何在容器小部件中的图像旁边添加文本?

点击表情符号按钮后,Flutter 文本域文本编辑控制器将文本恢复为原始值

火焰Flutter 在多个向量之间插补2

Flutter守护进程无法启动

我如何在Android 13中通过Flutter应用程序打开文件(不是图像、视频或音频)?

flatter_localizations错误在Null值上使用了Null判断运算符

Flutter Riverpod 没有捕获 List 的嵌套值变化

在 Dart 中按土耳其语字母顺序对字符串进行排序

Flutter 中的区域不匹配

点击按钮后重新启动定时器

Android 模拟器在 Apple M2 芯片 EXC_BAD_ACCESS / KERN_INVALID_ADDRESS 上随机崩溃

如何在 Flutter 中测试动画图标

面对Flutter 中的行和列问题

你如何在 Flutter 中组合两个数组?

如何流畅切换画面?

仅使用 Flutter 在本地环境中托管 Web 服务器