2010-11-01 25 views
11

Estoy teniendo el momento más difícil tratando de obtener la hora actual en la zona horaria EDT.Python - fecha y hora de una zona horaria específica

print datetime.time(datetime.now()).strftime("%H%M%S") 

datetime.now ([tz]) tiene un argumento tz opcional, pero tiene que ser de tipo datetime.tzinfo ... Aún no hemos podido encontrar la manera de definir un objeto tzinfo Oriental ben zona horaria ... Parece que debería ser bastante simple, pero no puedo resolverlo sin importar una biblioteca adicional.

Respuesta

20

No estoy muy familiarizado con la zona horaria EDT pero este ejemplo debería servir para su propósito.

import datetime 

datetime.datetime.now se debe pasar la información de zona horaria que debe ser de tipo datetime.tzinfo. Aquí hay una clase que implementa eso con algunas de las funciones requeridas. No proporciono detalles de ahorro de luz diurna aquí, ya que este es un ejemplo.

class EST(datetime.tzinfo): 
    def utcoffset(self, dt): 
     return datetime.timedelta(hours=-5) 

    def dst(self, dt): 
     return datetime.timedelta(0) 

Ahora usted puede usar esto para obtener la información con corrección de zona horaria:

print datetime.datetime.now(EST()) 

Salida:

2010-11-01 13:44:20.231259-05:00 
+0

gracias - frustrante tiene que crear una clase completa para especificar una zona horaria (frente a simplemente pasar una variable simple) – wuntee

+0

@wuntee: Eso no es cierto. Esto fue significado como una explicación. La respuesta de adw contiene la biblioteca - pytz que se puede usar para pasar información de tzinfo. De hecho, eso sería reutilización y aspectos como dst, etc. ya son provistos por el módulo de pytz. – pyfunc

8

La clase tzinfo sólo define una interfaz, tendrá que poner en práctica usted mismo (consulte la documentación para ver un ejemplo) o utilice un módulo de terceros que lo implemente, como pytz.

Editar: Lo siento, olvidé que no desea importar otra biblioteca.

+0

+1 por proporcionar el módulo de pytz porque estaba centrado en explicar el tzinfo. – pyfunc

Cuestiones relacionadas