Estoy enviando fechas desde mi aplicación web en formato UTC, pero cuando las recibo en el servidor, el serializador JSon (que probablemente se usa configurando su modelo) lo hace en una fecha local & hora con DateTimeKind. Local relativo a la zona horaria del servidor.¿Cómo decirle a ASP.Net MVC que todas las fechas entrantes deserializadas de JSon deberían ser UTC?
Cuando hago un DateTime.ToUniversalTime() obtengo la fecha UTC adecuada, así que esto no es un problema. La conversión funciona correctamente y las fechas se envían como deberían ... pero ... No me gusta hacer una llamada a 'ToUniversalTime()' en cada fecha de mi modelo antes de almacenarlo en una base de datos. Esto es propenso a errores y fácil de olvidar cuando tienes una gran aplicación.
Así que aquí está la pregunta: ¿Hay alguna manera de decirle a MVC que las fechas de entrada siempre deben expresarse en formato UTC?
parece que el deserializer está haciendo su trabajo bien, si los valores en el objeto DateTime son correctos. Las fechas pueden ser difíciles de manejar si comienza a tratar algunas como especiales en el servidor. –
@dtryon: No, creo que conservarlos como UTC tiene mucho más sentido. Los tiempos locales pueden ser fácilmente ambiguos, por lo que el deserializador puede estar * perdiendo información * aquí, lo que sin duda es un pecado capital. –
@JonSkeet, pero mientras ToUniversalTime() devuelva el UTC correcto, ¿no se está expresando correctamente? –