utcnow touniversaltime now new converttoutc c# datetime timestamp

c# - touniversaltime - DateTime.UtcNow tiene 4 horas de anticipación



datetime touniversaltime c# (2)

He visto algunas respuestas sobre cómo corregir esto. Tengo un objeto de tipo DateTime. He asignado este objeto como se muestra a continuación.

obj.TimeStamp = DateTime.UtcNow;

Parece que no puedo encontrar la combinación correcta o la manipulación del código para obtener la fecha y la hora correctas. Siempre es exactamente 4 horas antes de lo que es la hora actual.

Este software se implementará en varias zonas horarias.

¿Hay alguna manera confiable de garantizar que la marca de tiempo sea precisa en todas las zonas horarias? La configuración de tiempo de mi servidor es correcta.

Gracias.


¡Interesante pregunta! Las fechas y los tiempos son un problema notoriamente difícil de resolver. Parece tan simple, sin embargo, es tan difícil de hacer realmente. Todos estamos tan acostumbrados a mirar nuestros relojes por el momento, cuando de hecho es mucho más difícil que eso una vez que se involucran las zonas horarias y el horario de verano.

Eche un vistazo a la excelente biblioteca de Noda Time . Incluso si no lo usa, la guía del usuario proporciona algunas ideas excelentes sobre por qué las fechas y los tiempos son un problema tan difícil de resolver.

Sospecho que su problema particular está relacionado con el hecho de que su zona horaria es Hora del Este, que actualmente está observando el horario de verano, lo que hace que su zona horaria esté 4 horas por detrás de UTC.

Para presentar el horario a sus usuarios, necesitarán saber en qué zona horaria se encuentran. Si están en Nueva York, tendrán que usar UTC-04:00 , si están en California. Necesitaré usar UTC-08:00 y si están en Nueva Delhi necesitarás usar UTC+05:30 .

Sin embargo, esto podría cambiar si / cuando dejan de observar el horario de verano, pero tenga cuidado ya que no hay una regla rígida para esto. Eastern Time deja de observar el horario de verano el primer domingo de noviembre, el horario británico se detiene el último domingo de octubre, Indian Time no tiene horario de verano y las regiones del hemisferio sur observan el horario de invierno en los meses de invierno (al menos desde la perspectiva del norte Regiones del hemisferio).

¡Buena suerte!