我想将秒转换为 HH:SS 格式的分钟和秒,但我的逻辑没有给我我想要的。
static double toMin (var value){
return (value/60);
}
我还希望能够将余数添加到分钟值中,因为有时我的除法会给我一个超过 60 的秒值,这是不准确的
答案 0 :(得分:1)
您可以尝试以下解决方案,我就是这样做的:
String formatHHMMSS(int seconds) {
if (seconds != null && seconds != 0) {
int hours = (seconds / 3600).truncate();
seconds = (seconds % 3600).truncate();
int minutes = (seconds / 60).truncate();
String hoursStr = (hours).toString().padLeft(2, '0');
String minutesStr = (minutes).toString().padLeft(2, '0');
String secondsStr = (seconds % 60).toString().padLeft(2, '0');
if (hours == 0) {
return "$minutesStr:$secondsStr";
}
return "$hoursStr:$minutesStr:$secondsStr";
} else {
return "";
}
}
答案 1 :(得分:0)
你可以这样做:
void main() {
print(toMMSS(100));
}
String toMMSS(int value) =>
'${formatDecimal(value ~/ 60)}:${formatDecimal(value % 60)}';
String formatDecimal(num value) => value < 10 ? '0$value' : value.toString();
答案 2 :(得分:0)
Duration
class 可以为您完成大部分工作。
var minutes = Duration(seconds: seconds).inMinutes;
您可以通过执行以下操作以 String
格式生成 mm:ss
:
String formatDuration(int totalSeconds) {
final duration = Duration(seconds: totalSeconds);
final minutes = duration.inMinutes;
final seconds = totalSeconds % 60;
final minutesString = '$minutes'.padLeft(2, '0');
final secondsString = '$seconds'.padLeft(2, '0');
return '$minutesString:$secondsString';
}
也就是说,我建议反对使用 mm:ss
格式,因为在没有上下文的情况下,不清楚“12:34”是代表 12 分钟 34 秒还是 12 小时 34 分钟。我建议改用 12m34s,这是明确的。
答案 3 :(得分:-1)
static String formatYMDHMSBySeconds(int milliseconds) {
if (milliseconds == null) {
return '';
}
DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(milliseconds);
return DateFormat("yyyy-MM-dd HH:mm:ss").format(dateTime);
}