我的方法需要两个日期时间参数
public void SomeReport(DateTime TimeFrom, DateTime TimeTo)
{
// ommited
TimeFrom.ToString("ddMMyy"), TimeTo.ToString("ddMMyy")));
// ommited
}
当我发送这个参数时
DateTime TimeTo = DateTime.Now;
DateTime TimeFrom = new DateTime().AddHours(-1);
发生此错误:
System.ArgumentOutOfRangeException:添加或减去的值会导致无法表示的DateTime。
可能是什么问题?
答案 0 :(得分:31)
new DateTime()
是01/01/0001 00:00:00
,也是DateTime.MinValue
。
你要减去一小时。
猜测您正试图从TimeTo
值减去一小时:
var TimeFrom = TimeTo.AddHours(-1);
答案 1 :(得分:13)
new DateTime()
返回可表示的最小DateTime
;将-1
小时添加到此会导致无法表示的DateTime
。
您可能需要DateTime TimeFrom = TimeTo.AddHours(-1);
答案 2 :(得分:5)
尝试:
DateTime TimeTo = DateTime.Now;
DateTime TimeFrom = TimeTo.AddHours(-1);
答案 3 :(得分:1)
使用DateTime
创建new DateTime()
会为您提供DateTime
DateTime.MinValue
...从此您实际上无法减去任何内容...否则您将获得例外你有......见MSDN
答案 4 :(得分:1)
查看日期或时间数据。日期或时间没有足够的数字示例日期必须是8位20140604和时间6位数,如此180203.因此,您正在犯错误。 我也得到这个错误并找到时间18000并将其更改为180000问题解决了。
答案 5 :(得分:0)
在您的情况下,TimeFrom
包含无法添加-1的日期时间。你可以调用
DateTime TimeFrom = TimeTo .AddHours(-1);
或
DateTime TimeFrom = new DateTime().now.AddHours(-1);
它们都产生相同的结果。
答案 6 :(得分:0)
在我的错误中,我将时间用作24:00而不是00:00