Tengo la aplicación MonoTouch que procesa los datos de un servicio web. Estos datos contienen información de fecha que es específica de una zona horaria. La zona horaria es UTC +12 que es para Nueva Zelanda.Obtener DateTime.Now para un TimeZone específico independientemente de la zona horaria del dispositivo?
Mi aplicación muestra estos datos en función de la hora actual. El problema con esto es que cuando la aplicación se usa en diferentes TimeZones, los datos no se muestran correctamente porque la hora actual en el dispositivo es incorrecta.
¿Cómo puedo obtener la fecha y hora actuales para UTC +12 independientemente de la configuración de configuración regional/hora en el dispositivo?
Editar:
He probado el siguiente código basado en las respuestas a continuación:
TimeZoneInfo.ConvertTime (DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("Pacific/Auckland"));
Este código funciona bien en mi equipo, sin embargo cuando lo ejecuto en MonoTouch consigo la siguiente excepción:
System.ArgumentException: Kind propery of dateTime is Local but the sourceTimeZone does not equal TimeZoneInfo.Local
at System.TimeZoneInfo.ConvertTime (DateTime dateTime, System.TimeZoneInfo sourceTimeZone, System.TimeZoneInfo destinationTimeZone) [0x00018] in /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System/TimeZoneInfo.cs:179
at System.TimeZoneInfo.ConvertTime (DateTime dateTime, System.TimeZoneInfo destinationTimeZone) [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System/TimeZoneInfo.cs:173
empezar con DateTime.UtcNow? –
@lanks: ¿Qué pasó? ¿Por qué no retiró su respuesta? ¿No es lo que deseas? –
@Nickhil Agrawal Lo sentimos, pero después de probar su respuesta, no funcionó. He actualizado mi pregunta con el código y la excepción. – startupsmith