Quiero administrar las diferentes zonas horarias de mis usuarios en mi aplicación web, pero no tengo ni idea de dónde empezar. ¿Tengo que guardar la hora local de cada usuario en mi base de datos ?, ¿o quizás hacer la conversión a una hora UTC, guardarla y luego hacer la conversión nuevamente para mostrarla ?, o ¿hay alguna otra manera? Por ejemplo, si uno de mis usuarios hace una cita en su hora local, tengo que convertirla a UTC, almacenarla en mi base de datos y luego, cuando la necesite, convertirla nuevamente a su hora local y mostrarla ?? Por cierto, estoy usando Django. Gracias.¿Cómo administrar zonas horarias en una aplicación web?
Respuesta
fecha de tienda/hora como UTC (No estoy seguro que el comando de Python para que sea)
Cuando se da salida fechas, envolverlos en una función auxiliar que obtiene la preferencia de la zona horaria del usuario actual, luego ajuste la fecha/hora para la compensación y luego envíela desde la aplicación.
Pruebe el snippit Django UTC DateTime field. Tiene todo lo que necesitas desde el primer momento, prácticamente.
Para otra solución Django lista para usar, hay http://code.google.com/p/django-timezones/ –
El uso de una sola zona horaria "tiempo de la base de datos" es, en mi opinión, las mejores opciones porque: -
- Se simplifica enormemente rutinas para tratar con personas en diferentes zonas horarias
- Permite conversiones más fáciles de otras zonas horarias
- Cualquiera que vea los datos fuera de contexto de la vista del usuario puede asumir que es UTC, y no tiene que adivinar si "12:45" para un registro es "12:45" por otros
- Normas son buenos
Entonces, sí. Almacene la zona horaria del usuario en la base de datos, luego almacene todas las veces en un tiempo común (como UTC). Conviértelos cuando el usuario vea algo, incluido el tiempo. Es la solución más simple que no solo obliga a todos los usuarios a pretender estar en la misma zona horaria.
hacer la conversión a una hora UTC, guárdela y luego realice la conversión nuevamente para mostrarla?
Sí, incluso si sólo tiene una zona horaria local, debería ser en general el almacenamiento de fechas como marcas de hora UTC en la base de datos, y de convertirlo a partir del texto en la zona horaria apropiada en sus etapas de entrada y salida webapps. Cuando tiene almacenada una zona horaria por usuario, es fácil cambiar la zona horaria predeterminada para la personalizada.
pytz es la solución habitual para seleccionar y convertir zonas horarias. (Aunque personalmente me han pirateado mi propia colección menos abrumador de zonas horarias.)
- 1. Zonas horarias en Python
- 2. ¿Cuántas zonas horarias hay?
- 3. Elasticsearch y zonas horarias
- 4. ¿Cómo hacer zonas horarias en ASP.NET MVC?
- 5. ¿Cómo puedo convertir zonas horarias en Perl?
- 6. Cómo obtener las diferencias horarias actuales entre dos zonas horarias
- 7. Python strptime() y zonas horarias?
- 8. ExtJS fechas y zonas horarias
- 9. DateTime.Ticks, DateTime.Equals y zonas horarias
- 10. Javascript/PHP y zonas horarias
- 11. ¿La mejor manera de administrar las fechas de almacenamiento/visualización en diferentes zonas horarias en PHP?
- 12. Conversión entre zonas horarias en PHP
- 13. Convertir marca de tiempo en zonas horarias
- 14. Convertir entre zonas horarias en C
- 15. ¿Manipulación de zonas horarias en almacenamiento?
- 16. Trabajando con zonas horarias en SSRS
- 17. Visualización de zonas horarias sin utilizar UTC
- 18. Joda Time - diferente entre las zonas horarias
- 19. Javascript DateFormat para diferentes zonas horarias
- 20. Seleccionar solo zonas horarias de Estados Unidos
- 21. impresión hora correcta con zonas horarias, Python
- 22. Componentes de NSDateComponents: fromDate y Zonas horarias
- 23. ¿Cómo enumero todas las zonas horarias en .NET?
- 24. la conversión a otras zonas horarias UTC
- 25. zonas horarias en R: ¿cómo evitar términos ambiguos como EST?
- 26. Mejor lista de zonas horarias de PHP
- 27. Zonas horarias de Python - pytz.common_timezones tiene demasiadas
- 28. ¿Cómo pruebo la aplicación dependiente de la zona horaria de mi navegador en diferentes zonas horarias?
- 29. ¿Cómo se manejan las zonas horarias en CFML?
- 30. ¿Cómo convertir el tiempo entre zonas horarias (UTC a EDT)?
Segaco, que fueron capaces de encontrar una solución? ¿Quizás pueda marcar una respuesta como aceptada a continuación? –