【问题标题】:DateTime gives me "01/01/0001 12:00:00 AM" instead of actual dateDateTime 给我“01/01/0001 12:00:00 AM”而不是实际日期
【发布时间】:2012-07-16 04:28:13
【问题描述】:

我正在使用 MVC 4,并且我有一个接受两个日期的表单字段。一个用于签入,另一个用于结帐。课程非常基础:

public class date {
     public DateTime Checkin { get; set; }
     public DateTime Checkout { get; set; }
}

我使用的格式是 mm/dd/yyyy,其中用户使用 javascript 日历输入签入日期,并使用 jquery 移动滑块调整签出日期。但是,我似乎总是得到 “01/01/0001 12:00:00 AM”而不是实际日期。我将解决方案提供给了我的同事,即使代码完全相同,他们也没有问题。

是否有我可以更改的设置或者我的视觉工作室搞砸了?

【问题讨论】:

  • 你是如何解析DateTime的?
  • 您和您的同事机器的文化设置是否相同?
  • @V4Vendetta 我相信签入和签出都是字符串值,然后当我按下提交按钮时,它会创建日期模型。
  • @Mark 如何更改文化设置?

标签: c# asp.net-mvc


【解决方案1】:

您有分配这些属性的代码吗?这是DateTime 的默认值,所以应该分配它的任何东西都可能根本没有执行。 date 是模特吗?如果您依赖 mvc 模型绑定器,请确保您的控制器操作接受 date 类型的参数。 (也许还可以考虑改进名称)

【讨论】:

    【解决方案2】:

    您显示的类将Checkin 和Checkout 初始化为DateTime.MinValue,即01/01/0001 上午12 点。

    您不会显示任何更改该值与初始化值的代码。

    大概是从 UI 到模型的绑定不正确。您将不得不发布更多代码来准确诊断出问题所在。建议您在控制器中发布操作,您可以在其中接受来自 UI 的新值。

    有关使用 DateTime 作为控制器操作的参数可能会出错的指导,请参阅此类似帖子:

    How do I pass a datetime value as a URI parameter in asp.net mvc?

    【讨论】:

      【解决方案3】:

      您在客户端的绑定不起作用,请查看您用于日期的输入的名称,例如,检查下面,您可以拥有日期选择器的 id,但属性 name 应具有以下值:Checkin 和其他 Checkout

      <input id=datepicker name="Checkin" />
      <input id=datepicker name="Checkout" />
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-29
        • 2022-01-24
        • 1970-01-01
        相关资源
        最近更新 更多