代码之家  ›  专栏  ›  技术社区  ›  Overdose

ASP.NET MVC 2 Beta:日期时间转换。是否有缺陷?

  •  5
  • Overdose  · 技术社区  · 15 年前
    <%= Html.ActionLink(Html.Encode("user3"),
      "Filter", new { controller = "Search",
       userName = "user3", 
       dateFrom = DateTime.Now.AddDays(-2).ToString(), 
       dateTo = DateTime.Now.ToString() })%>
    

    它对这个链接进行了评估:

    http://localhost:60357/Search/Filter?userName=user3&dateFrom=08.02.2010%2023%3A21%3A33&dateTo=10.02.2010%2023%3A21%3A33
    

    我必须注意到,当前Windows中的全球化设置设置为欧洲日期格式。所以2010年2月8日=2010年2月8日。

    但在行动方法上

    public ActionResult Filter(String userName, DateTime dateFrom, DateTime dateTo)
    

    datefrom的值为02.08.2010=02 2010年8月

    不正确。它是框架错误吗?那么解决这个问题的最佳方法是什么呢?如果可能的话,我不想写一些monkeypatch。

    1 回复  |  直到 15 年前
        1
  •  5
  •   Craig Stuntz    15 年前

    不要使用 DateTime.Now.ToString() . 使用 DateTime.Now.ToString("s") (ISO 8601格式——yy-mm-ddthh:mm:s s)只有一种可能的解释方法,所以它永远不会错——至少,直到你开始处理时区!(考虑 "u" 格式。)