Ejecución de asp.net mvc 2 en Win 7 con .NET 4.0TimeZoneInfo.ConvertTime no convierte nada
Tengo un método de acción controlador que recibe 2 objetos DateTime de una forma. La interfaz de usuario en el formulario utiliza el jQueryUi datepicker (no estoy seguro de si ese maters).
El usuario que completa ese formulario SIEMPRE ingresará la fecha/hora en la zona horaria de Hawai.
Quiero convertir eso a hora UTC y almacenarlo en una base de datos.
Cuando llamo a TimeZoneInfo.ConverTime (DateTime, TimeZoneInfo, TimeZoneInfo) devuelve el mismo datetime exacto que pasé sin hacer ninguna conversión. Revisé el depurador y lo único que cambió fue que cambió la propiedad DateTime.Kind a DateTimeKind.Utc.
public ActionResult New(ScheduleNew data){
TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time");
DateTime start = TimeZoneInfo.ConvertTime(data.StartDate, tz, TimeZoneInfo.Utc);
DateTime end = TimeZoneInfo.ConvertTime(data.EndDate, tz, TimeZoneInfo.Utc);
}
He intentado una versión alternativa con los mismos resultados.
public ActionResult New(ScheduleNew data){
DateTime start = new DateTime(data.StartDate.Year, data.StartDate.Month, data.StartDate.Day, data.StartDate.Hour, data.StartDate.Minute, data.StartDate.Second, DateTimeKind.Unspecified);
DateTime end = new DateTime(data.EndDate.Year, data.EndDate.Month, data.EndDate.Day, data.EndDate.Hour, data.EndDate.Minute, data.EndDate.Second, DateTimeKind.Unspecified);
TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time");
StartDate = TimeZoneInfo.ConvertTime(start, tz, TimeZoneInfo.Utc);
EndDate = TimeZoneInfo.ConvertTime(end, tz, TimeZoneInfo.Utc),
}
ScheduleData es sólo una clase modelo de vista sencillo con dos propiedades de fecha y hora llamados StartDate y EndDate.
Quiero destacar, no me importa dónde se encuentra el servidor, no me importa dónde se encuentra el usuario. El usuario siempre ingresará la hora en la zona horaria de Hawai, y el servidor siempre debe convertir esa fecha a UTC.
Básicamente lo que quiero es agregar 10 horas al tiempo que el usuario ingresa (hawaiano a utc) y podría lograrlo simplemente llamando .AddHours (10) y estaría bien. Pero más adelante, necesitaré que esta aplicación sea más flexible.
¿resolvió el problema? – Rory
¿Cuál fue el tipo de datos.StartDate? – Rory