Datetime 如何在DART中从当前时间开始计算最后30分钟、1小时的时间

Datetime 如何在DART中从当前时间开始计算最后30分钟、1小时的时间,datetime,dart,Datetime,Dart,如何从DART中的当前时间获取最后3小时的时间 我通过这个得到了当前时间 DateTime toTime = new DateTime.now(); 我想从当前时间算起最后30分钟,最后1小时,最后3小时,最后6分钟,最后12分钟,最后24分钟 我试过这样做 from = toTime.subtract(new Duration(hours: 0.5)).millisecondsSinceEpoch; //This is not working 我正在将这些结果转换为epoc

如何从DART中的当前时间获取最后3小时的时间

我通过这个得到了当前时间

DateTime toTime = new DateTime.now();
我想从当前时间算起最后30分钟,最后1小时,最后3小时,最后6分钟,最后12分钟,最后24分钟

我试过这样做

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

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

正如@julemand101所指出的,Duration将其命名的
hours
参数作为int。传递一个double将抛出一个错误。相反,请编写如下代码:

DateTime curTime=newdatetime.now()//当前本地时间
DateTime thirtyMinAgo=curTime.subtract(持续时间(分钟:30));
int thirtyMinAgoInMs=thirtyMinAgo.millissecondssinceepoch;
返回第三个Minagoinms;
试用此软件包。灵感来自。它还考虑了闰年以及每个月有多少天

为了得到最后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);

希望这有所帮助。

小时参数的类型为int,因此不能是浮点值。改为使用minutes参数并将其设置为30: