如何从DART中的当前时间开始获取最近30分钟1小时的时间

时间:2019-10-01 13:12:36

标签: datetime dart

如何从DART当前时间获取最近3个小时的时间

我现在正在通过这个时间

DateTime toTime = new DateTime.now();

我想从当前时间开始获取过去30分钟,lastOneHour,lastThreeHour,last 6,last 12,last 24时间。

我试图这样做

    from = toTime.subtract(new Duration(hours: 0.5)).millisecondsSinceEpoch;
    //This is not working

我正在将这些结果转换为epochtime。

2 个答案:

答案 0 :(得分:0)

正如@ julemand101指出的那样,Duration具有一个名为hours的参数作为int。通过双打会抛出一个错误。相反,请编写如下代码:

DateTime curTime = new DateTime.now(); //Current local time
DateTime thirtyMinAgo = curTime.subtract(Duration(minutes: 30));
int thirtyMinAgoInMs = thirtyMinAgo.millisecondsSinceEpoch;
return thirtyMinAgoInMs;

答案 1 :(得分:0)

尝试使用此软件包Jiffy。受momentjs的启发。它还考虑了years年和每个月有多少天

获得最后30分钟

Jiffy().subtract(minutes: 30);

// You can also add your DateTime object
Jiffy(DateTime.now()).subtract(minutes: 30);

获得最后3个小时

Jiffy().subtract(hours: 3);

您还可以长达几个月甚至几年

var jiffy = Jiffy()
    ..subtract(minutes: 30, hours: 3, days: 6, months: 2, years: 1);

print(jiffy.dateTime);
// Or you can format it on the go
print(jiffy.format("dd, MMM yyyy"));
print(jiffy.yMMMd);

希望这会有所帮助。

免责声明:我创建了Jiffy软件包。