Almacenamiento de información de tiempo: ¿Se requiere una zona horaria?

Tengo curiosidad por saber si lo que estoy considerando es una mala práctica, o si, dado que se trata de una elección específica y deliberada, en realidad es una idea decente. Quiero almacenar información de fechas para eventos que ocurren en ciudades específicas. Quiero almacenar esos datos como marcas de tiempo UTC. ¿No sería una buena idea simplemente almacenar la marca de tiempo y la identificación de la ciudad / país (que está asociada con una zona horaria específica), en lugar de almacenar la zona horaria para cada evento? Pregunto porque las zonas horarias pueden cambiar, pero las identificaciones de las ciudades nunca cambiarían en la base de datos. Una vez que el servidor se sincronice con la última zona horaria en el evento (improbable) de un cambio de zona horaria, el evento sería independiente y no se vería afectado por ese cambio. Sin embargo, digamos que una zona horaria cambia sus límites, entonces los eventos que ocurrieron en esa zona horaria previamente podrían estar fuera de ella. ¿Parece imprudente hacer esto? Solo me lo pregunto, y he estado buscando las mejores prácticas, pero en este caso, en realidad, esto parece una buena idea. Esto funciona particularmente porque el modelo de diseño de la aplicación nunca cambiaría, los eventos SIEMPRE estarán asociados con una ciudad específica.

El flujo básico sería:

Los datos de eventos con fecha / ubicación entran en el sistema en un formato estándar como la cadena ISO-8601 YYYY-MM-DD.

El sistema convierte la fecha en la marca de hora UTC y almacena la fecha con el evento utilizando esa marca de hora y la ID de ciudad para el evento.

Cuando un usuario solicita ver ese evento, el sistema extrae la marca de tiempo y la información de la ciudad asociada con ese evento, y utiliza la zona horaria de la ciudad para formatear la fecha correspondiente en la pantalla.

¿Es esta una idea terrible? ¿Hay algún beneficio en esto? ¿Es el concepto de almacenar la compensación TZ la misma idea para eliminar este problema?

Respuestas a la pregunta(3)

Su respuesta a la pregunta