在日期中添加天数无法正常工作

时间:2019-10-01 12:59:16

标签: flutter dart

我正在尝试在日期中添加天数,但是我不明白结果,这是我的代码:

setup_method

我得到了这个结果:

void testDate(){
  DateTime start = DateTime(2019,10,1);
  DateTime end = DateTime(2019,11,1);

  List<DateTime> list = new List();
  DateTime current = DateTime.fromMillisecondsSinceEpoch(start.millisecondsSinceEpoch);

  while(current.isBefore(end)){
    list.add(DateTime.fromMillisecondsSinceEpoch(current.millisecondsSinceEpoch));
    Duration duration = Duration(days:3);
    current = current.add(duration);
    print(current);
    current = DateTime(current.year,current.month,current.day);
  }
}

为什么2019-10-25 00:00:00.000 + 3天= 2019-10-27 23:00:00.000?应该是2019-10-28 00:00:00.000

1 个答案:

答案 0 :(得分:2)

文档指出:

“请注意,添加的持续时间实际上是50 * 24 * 60 * 60秒。如果所得的DateTime的夏令时偏移与此不同,则结果将没有与此相同的时间,甚至可能不会在50天后达到日历日期。

在当地时间处理日期时要小心。”

可能在

之间开始夏令时
  

2019-10-25 00:00:00.000

     

2019-10-27 23:00:00.000

在以下位置查看:

https://api.flutter.dev/flutter/dart-core/DateTime/add.html