如何将 TimeOfDay 转换为 int/num 以便我可以从中减去另一个数字?

问题描述 投票:0回答:2

我想将 TimeOfDay 转换为数字,以便我可以从中减去另一个数字。一旦时间和其他数字相减,我想将总数转换回 TimeOfDay 格式。

我目前没有代码,因为我不知道从哪里开始。这可能吗?

flutter
2个回答
1
投票

回答您的评论和问题。

您可以使用标准的

DateTime
类。下面的几个例子减去了几个不同的
Duration's

DateTime now = new DateTime.now();

DateTime oneDayAgo = today.subtract(new Duration(days: 1));
DateTime oneHourAgo = today.subtract(new Duration(hours: 1));
DateTime thirtyMinutesAgo= today.subtract(new Duration(minutes: 30));
DateTime tenSecondsAgo = today.subtract(new Duration(seconds: 10));
DateTime oneDayOneHourAndThirtyMinuesAgo= today.subtract(new Duration(days: 1,hours:1, minutes:30, seconds:10));

然后如果你想格式化日期

import 'package:intl/intl.dart';

DateTime now = DateTime.now();
String formattedTime = DateFormat.Hms().format(now);
print(formattedTime);

参考文献

  1. 日期格式
  2. 日期时间
  3. 日期减法
  4. 持续时间

另请参阅差异方法以及如果您想计算两个日期之间的差异,这里是一个很好的答案


0
投票
final timeOfDay = TimeOfDay(hour: 2, minute: 10);
final minutes = Duration(
    hours: timeOfDay.hour, 
    minutes: timeOfDay.minute).inMinutes - 66;
final newValue = TimeOfDay(hour: minutes ~/ 60, minute: minutes % 60);
© www.soinside.com 2019 - 2024. All rights reserved.