ASP.NET MVC 2 Beta:日期时间转换。错误与否?

时间:2010-02-10 21:31:09

标签: asp.net-mvc datetime

<%= 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中当前的全球化设置已设置为欧洲日期格式。所以08.02.2010 = 2010年2月8日。

但是在动作方法中

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

dateFrom的值为02.08.2010 = 2010年8月2日

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

1 个答案:

答案 0 :(得分:5)

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