为什么我在使用减法时在Dart中得到两次今天(DateTime)对象?

为什么我在使用减法时在Dart中得到两次今天(DateTime)对象?,dart,Dart,为什么我在Dart中两次得到今天(日期时间)对象 for (var i = 0; i < 7; i++) { DateTime currentDay = DateTime.now().subtract(Duration(days: i)); print(currentDay.toString()); 我错过什么了吗 更新 这个代码修复了它,仍然不理解它 DateTime today=DateTime.now(); for (var i = 0; i < 7; i++) {

为什么我在Dart中两次得到今天(日期时间)对象

for (var i = 0; i < 7; i++) {
DateTime currentDay = DateTime.now().subtract(Duration(days: i));
print(currentDay.toString());
我错过什么了吗

更新

这个代码修复了它,仍然不理解它

 DateTime today=DateTime.now();
  for (var i = 0; i < 7; i++) {
    DateTime currentDay = today.subtract(Duration(days: i));
    print(currentDay.toString());
  }
}
DateTime today=DateTime.now();
对于(变量i=0;i<7;i++){
DateTime currentDay=今天。减去(持续时间(天:i));
打印(currentDay.toString());
}
}

是循环太快,还是使用多线程?

我猜这与本地夏令时有关。发件人:

请注意,减去的持续时间实际上是50*24*60* 60秒。如果生成的日期时间具有不同的夏令时 如果偏移量大于此值,则结果的时间将与 这样,甚至可能不会提前50天到达日历日期

使用当地时间的日期时要小心

Dart是单线程的,因此后台没有自动多线程。循环不是“太快”。。。它每次都在增加i。看起来DateTime认为那一天有25个小时

 DateTime today=DateTime.now();
  for (var i = 0; i < 7; i++) {
    DateTime currentDay = today.subtract(Duration(days: i));
    print(currentDay.toString());
  }
}