flutter 如何将以毫秒为单位的时差转换回以 dart /扑击为单位的分钟

ecfdbz9o  于 2023-05-23  发布在  Flutter
关注(0)|答案(1)|浏览(161)

我有一个屏幕,显示从开始到结束的持续时间的百分比。开始和结束时间是从TimeOfDay中获取的,我添加了日期以生成DateTime. millisecondsSceEpoch整数。
现在我可以通过简单的减法求出开始和结束之间的时间差。如何将我得到的值更改为一分钟来计算百分比。当我把它转换回日期;输出不是时差,而是新的日期。

int trainingStartInEpoch = DateTime(trainingDateYear, trainingDateMonth, trainingDateDay, trainingStartHour, trainingStartMinutes).millisecondsSinceEpoch;
  int trainingEndInEpoch = DateTime(trainingDateYear, trainingDateMonth, trainingDateDay, trainingEndHour, trainingEndMinutes).millisecondsSinceEpoch;
  int timeDiff = trainingEndInEpoch - trainingStartInEpoch;
  final DateTime date2 = DateTime.fromMillisecondsSinceEpoch(timeDiff);

  print("epochDiff if posetive" " $timeDiff");
  print("difDate if posetive" " $date2");

下面是输出
epochDiff if positive 14400000
difDate if positive 1970-01-01 07:00:00.000

pepwfjgg

pepwfjgg1#

一个简单的方法是在DateTime中使用.difference()函数。例如:

final DateTime startTime = ...;
final DateTime endTime = ...;
final Duration duration = endTime.difference(startTime);

print("The duration is ${duration.inMinutes} minute(s)");
// duration.inMinutes
// duration.inSeconds
// duration.inDays etc.

您可以使用.inMinutes属性获取总时长,单位为分钟,还可以获取秒、小时、天等。

相关问题