¿Cuál es la diferencia entre DateTime.ToUniversalTime y TimeZoneInfo.ConvertTimeToUtc

Apenas estoy empezando a pensar correctamente sobre la implementación de una aplicación web que tendrá que hacer las cosas a los usuarios al comienzo de su día, digamos a las 6 am. También al final de sus días.

En todas partes he estado leyendo sobre personas que dicen mucho solo para usar .ToUniversalTime para almacenar el tiempo en UTC, pero cuando probé esto (como sospechaba) no funcionó, y simplemente cambió el tiempo una hora ( Estoy en el Reino Unido, así que pensé que esto tenía que ver con algunos desplazamientos de GMT a UTC, aunque eso no tiene sentido para mí, ya que el ahorro de luz diurna debería estar desactivado en este momento).

Tengo un campo en la base de datos que almacena la zona horaria de los usuarios, por lo que cuando comencé a usar ConvertTimeToUtc y fromUtc, comenzó a hacer lo que esperaba que hiciera. Aunque, una vez más, no estoy seguro de si tengo que desarrollar alguna lógica para hacer conversiones de horario de verano, o debería hacerlo por mí.

Principalmente me pregunto por qué todos hablaban de .ToUniversalTime, ya que realmente no parecía ayudarme, y no podía entender cómo podría saber cuánto compensar el tiempo para cambiarlo a UTC, mientras que la segunda manera Tuvo sentido.

¿Podría alguien explicar cómo cada método podría ser útil?

Respuestas a la pregunta(3)

Su respuesta a la pregunta