小问题:
我像这样计算给定月份的天数:
new DateTime(2018, month+1, 1).difference(new DateTime(2018,month,1)).inDays
一切正常,februari
给了我28
天,除30/31
以外的所有月份都正确地March
天,这给了我30
天的31
。
以前有没有人看过这也许是一个解释?
谢谢。
答案 0 :(得分:2)
我认为是因为夏时制,请尝试 new DateTime.utc(),下面的代码将输出正确的值
for(int month = 1; month < 13; month++) {
int daysInMonth = new DateTime.utc(2018, month+1,1).difference(new DateTime.utc(2018,month,1)).inDays;
print(daysInMonth);
}
“在处理日期或历史事件时,最好使用UTC日期时间,因为它们不受夏时制更改的影响,也不受本地时区的影响。”