Бета ASP.NET MVC 2: преобразование 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

Я должен заметить, что текущие настройки Globalization в Windows установлены до европейского формата даты. Так 02.08.2010 = 08 февраля 2010.

Но в методе действия

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

dateFrom имеет значение 08.02.2010 = 02 августа 2010

Это неправильно. Это - ошибка платформы? Таким образом, что лучший способ состоит в том, чтобы решить эту проблему? Я не хочу писать некоторый monkeypatch, если это возможно.

5
задан Overdose 10 February 2010 в 21:31
поделиться

1 ответ

Don't use DateTime.Now.ToString(). Используйте DateTime.Now.ToString("s") (формат ISO 8601 -- yyyy-MM-ddTHH:mm:ss) Существует только один возможный способ интерпретации, поэтому он никогда не ошибается -- по крайней мере, пока вы не начнете иметь дело с часовыми поясами! (Рассмотрим для этого формат "u")

.
5
ответ дан 14 December 2019 в 19:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: