Tengo una aplicación Go y almaceno todas las fechas como UTC:
dateTime, err := time.Parse("2006-01-02T15:04:05.000Z", myDateTime)
Esto se convierte en algo como: 2022-09-29T19:40:36.150Z .
Ahora quiero mostrar este lado del cliente de fecha y hora (en un sitio web), pero mostrando al usuario la hora en su zona horaria.
Como todo es UTC, podría hacer que el usuario elija su zona horaria de una lista, como esta https://gist.github.com/valo/c07f8db33d223f57a4cc9c670e1b6050 .
Entonces solo es cuestión de sumar/restar algo de tiempo del UTC y mostrarlo.
Pero el problema es con el horario de verano, la zona horaria del lado del cliente tendría que cambiar cuando es verano y cambiar nuevamente cuando es invierno.
¿Cómo está la gente haciendo esto?
Por lo general, esto sucede en el lado del cliente. La información sobre la zona horaria del cliente se almacena en el navegador y está disponible para usted si la necesita. Sin embargo, hay funciones que resuelven esto automáticamente como toLocaleDateString .
Paso 1.
Analice la cadena de tiempo 2022-09-29T19:40:36.150Z en un objeto de fecha en javascript
Paso 2.
Utilice toLocaleDateString en la fecha. Esto mostrará la fecha en la configuración de la zona horaria del cliente almacenada en el navegador