2009-11-16 14 views
5

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?

+0

Segaco, que fueron capaces de encontrar una solución? ¿Quizás pueda marcar una respuesta como aceptada a continuación? –

Respuesta

1

Pruebe el snippit Django UTC DateTime field. Tiene todo lo que necesitas desde el primer momento, prácticamente.

+1

Para otra solución Django lista para usar, hay http://code.google.com/p/django-timezones/ –

0

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.

0

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.)

Cuestiones relacionadas