我正在尝试在日期中添加天数,但是我不明白结果,这是我的代码:
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
答案 0 :(得分:2)
文档指出:
“请注意,添加的持续时间实际上是50 * 24 * 60 * 60秒。如果所得的DateTime的夏令时偏移与此不同,则结果将没有与此相同的时间,甚至可能不会在50天后达到日历日期。
在当地时间处理日期时要小心。”
可能在
之间开始夏令时2019-10-25 00:00:00.000
2019-10-27 23:00:00.000
在以下位置查看: