Cambiar una marca de tiempo de Unix a una zona horaria diferente

Recupero una marca de tiempo de Unix de un servicio web en un progtwig Python. Esta marca de tiempo se encuentra en una zona horaria de Estados Unidos. Para insertarlo en una base de datos MySQL con otros objetos, localizados en Francia, me gustaría convertir esta marca de tiempo a la zona horaria francesa.

Podría hacerlo con funciones matemáticas, pero está el problema del horario de verano. Preferiría usar las funciones específicas de fecha y hora de Python que deberían tratar estos conceptos.

¿Tiene una pista, estoy perdido en la documentación de Python?

En el pasado tuve un problema similar cuando las marcas de tiempo de los archivos que descargamos de un proveedor de servicios tenían marcas de tiempo correspondientes a la zona horaria de PST. Lo siguiente me ayudó a hacer para la conversión:

import pytz, datetime, time import os originalTimeStamp = os.stat("/tmp/file-from-us-west-coast").st_mtime # prints eg 2010-03-31 13:01:18 print "original:",datetime.datetime.fromtimestamp(originalTimeStamp) # re-interpret originalTimeZone = "America/Los_Angeles" targetTimeZone = "Europe/Paris" newTimeStamp = pytz.timezone(originalTimeZone).localize(datetime.datetime.fromtimestamp(originalTimeStamp)).astimezone(pytz.timezone(targetTimeZone)) # prints eg 2010-03-31 22:01:18+02:00 print "new: ",newTimeStamp # convert back to seconds since epoch newTimeStamp = time.mktime(newTimeStamp.timetuple()) # print time difference in hours print (newTimeStamp - originalTimeStamp) / 3600.0 

Si es realmente una marca de tiempo de Unix, entonces está basado en UTC. Simplemente interpreta correctamente para su caso de uso. Aplique la traducción de la zona horaria solo cuando tenga que imprimir esta fecha como texto.

Si también lo está guardando como marca de tiempo de su lado, manténgalo tal como está.

Pytz podría ayudarte aquí. Como dijo viraptor, lo ideal sería almacenar todas las fechas de sus datos como marcas de tiempo UTC de Unix, y solo localizar el momento en que se imprime.