2012-02-15 23 views
5

En una aplicación de Python, necesito saber el día actual. datetime.date.today() funciona bien. El problema es que cuando despliego el programa a mi servidor ubicado en los EE. UU., Mi base de usuarios (que es italiana) presenta una fecha que puede no ser la correcta (ya que el servidor está a 6 zonas horarias de distancia).Zonas horarias en Python

¿Cómo puedo construir un objeto de fecha en python según un huso horario específico? Gracias

+0

['pytz'] (http://pytz.sourceforge.net/) es su amigo. – Amber

Respuesta

4

Todos coinciden en que UTC es maravilloso, pero que no ayuda mucho si datetime.date.today() se está ejecutando en los EE.UU. sin una zona horaria. Si la base de usuarios está en Italia y esa es la fecha que desea mostrar ...

import datetime 
import pytz 

IT = pytz.timezone('Europe/Rome') 
oggi = datetime.now(IT).date() 
-2

acceder a la clase, cree una instancia, establecer su propio tiempo, el acceso que se opone cada vez que desea que el tiempo.

+0

¡Lo he hecho de esta manera antes y funciona! Es genial porque puede establecer en cualquier momento que desee y el programa hará un seguimiento de ello. Yo también ofrezco obras de pytz. –

+0

No entiendo lo que dices. ¿Puedes elaborar? –

5

Normalmente, una aplicación de servidor hará todo el tiempo de almacenamiento y cálculos en UTC. Los tiempos también se transmitirán al cliente en UTC. A continuación, realice la conversión a la hora local en el lado del cliente (en Javascript, si es una aplicación web). Es muy difícil para un servidor obtener la zona horaria adecuada para cada cliente, porque el servidor simplemente no tiene toda la información.

Incluso si la aplicación está específicamente dirigido a los usuarios italianos, que han llegado a viajar a otras zonas horarias.

+0

+1 Es una idea mucho mejor utilizar un buen estándar (como UTC) y convertirlo del lado del cliente. –

Cuestiones relacionadas