zona timezoneinfo horaria findsystemtimezonebyid example converttimefromutc cambiar c# .net timezone internationalization

horaria - timezoneinfo c# example



.NET Obtenga el desplazamiento de zona horaria por nombre de zona horaria (3)

En la base de datos, almaceno todas las fechas / horas en UTC.

Sé el nombre de la zona horaria del usuario ("US Eastern Standard Time", por ejemplo).

Para mostrar la hora correcta, estaba pensando que necesito agregar el desplazamiento de la zona horaria del usuario a la fecha / hora UTC. Pero, ¿cómo puedo obtener la zona horaria compensada por el nombre de la zona horaria?

¡Gracias!


Puede utilizar el método GetSystemTimeZones () de la clase TimeZoneInfo para buscar la lista de todas las zonas horarias configuradas en su servidor y compararla con la de su cliente.

¿Por qué tienes zonas horarias en el formato "US Eastern Standard Time"? De donde vino eso?


Puede utilizar TimeZoneInfo.FindSystemTimeZoneById para obtener el objeto TimeZoneInfo utilizando el Id proporcionado, y luego TimeZoneInfo.GetUtcOffset partir de eso:

TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("US Eastern Standard Time"); TimeSpan offset = tzi.GetUtcOffset( myDateTime);


En lugar de hacer una adición manual, debe aprovechar el método TimeZoneInfo de TimeZoneInfo que se encargará de convertir su fecha en función del TimeZone que especifique.

var localizedDateTime = TimeZoneInfo.ConvertTime(yourDateTime, localTimeZoneInfo);