年,月和日参数描述了无法表示的DateTime异常

时间:2012-06-28 14:12:24

标签: asp.net-mvc-3 c#-4.0

我正在使用以下代码将对象添加到ASP.NET MVC 3应用程序中的列表中,但该对象的一个​​属性给我带来了困难。

ls.Add(new UserRoleModel { UserRoleId = 1, UserName = "Paul", InsertDate = new DateTime(05, 24, 2012),InsertProgram="sqlplus",InsertUser="sp22",Role="Implementation Co-corindator"});

这构建但是当我进入相关页面时,我得到一个具有以下类型的异常:

Exception Details: System.ArgumentOutOfRangeException: Year, Month, and Day parameters describe an un-representable DateTime.

我已经尝试在当月删除0,但我得到了同样的例外。

6 个答案:

答案 0 :(得分:22)

DateTime constructor you are calling接受订单年,月,日的参数。

您按月,日,年的顺序提供它们 - 最终会尝试分配无意义的值。文档非常清楚允许的值是什么以及如果您将2012年的“日期”值传递出去会发生什么。

答案 1 :(得分:6)

我刚刚遇到这个问题,我的问题是我在2月创建了一个日期。我试着做以下......

new Date(2013, 2, 30)

由于没有2月30日,因此无法创建日期。当我改为

new Date(2013, 2, 28)

它运作良好。

答案 2 :(得分:2)

如果InsertDate意味着创建的日期/时间,您可以使用以下

DateTime InsertDate  = DateTime.Now;

答案 3 :(得分:1)

您正在使用无效的日期时间,例如您可能会超过31个月的13,14天

或类似的东西导致问题。

答案 4 :(得分:0)

我遇到了同样的问题,因为我试图创建一个日期设置为4月31日的DateTime对象,即使4月只有30天。 任何人都有同样的问题,请确保你没有犯这个错误。

答案 5 :(得分:0)

我解决的同样的异常:

DateTimePicker1.Value = DateSerial(Year(Now), Month(Now) + 1, 1)