2010-02-10 6 views
5
<%= Html.ActionLink(Html.Encode("user3"), 
    "Filter", new { controller = "Search", 
    userName = "user3", 
    dateFrom = DateTime.Now.AddDays(-2).ToString(), 
    dateTo = DateTime.Now.ToString() })%> 

Es evaluado a este enlace:ASP.NET MVC 2 Beta: conversión de fecha y hora. ¿Error o no?

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

que tiene que darse cuenta de que la configuración actual de globalización de Windows están configurados para formato de fecha europeo. Así 08.02.2010 = 08 de febrero de 2010.

Sin embargo, en el método de acción

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

dateFrom tiene el valor 02.08.2010 = 02 Ago 2010

Es incorrecto. ¿Es un error de framework? Entonces, ¿cuál es la mejor manera de resolver este problema? No quiero escribir un monopatch si es posible.

+1

+1 para 'monkeypatch'. – womp

Respuesta

5

No utilice DateTime.Now.ToString(). Use DateTime.Now.ToString("s") (formato ISO 8601 - aaaa-MM-ddTHH: mm: ss) Solo hay una forma posible de interpretar eso, así que nunca está mal, al menos, ¡hasta que empiece a ocuparse de las zonas horarias! (Considere el formato "u" para eso.)

+0

¡Tienes toda la razón! ¡Gracias! – Overdose

Cuestiones relacionadas