像HH:mm:ss一样格式化持续时间
问题内容:
是否有一种很好的方式可以将h的持续时间设置为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)}");