¿Cómo puedo representar correctamente una zona horaria diferente en mi zona horaria? El siguiente ejemplo sólo funciona porque sé que EDT es de una hora por delante de mí, así que puede descomentar la sustracción de myTimeZone()¿Cómo uso las zonas horarias con un objeto datetime en python?
import datetime, re
from datetime import tzinfo
class myTimeZone(tzinfo):
"""docstring for myTimeZone"""
def utfoffset(self, dt):
return timedelta(hours=1)
def myDateHandler(aDateString):
"""u'Sat, 6 Sep 2008 21:16:33 EDT'"""
_my_date_pattern = re.compile(r'\w+\,\s+(\d+)\s+(\w+)\s+(\d+)\s+(\d+)\:(\d+)\:(\d+)')
day, month, year, hour, minute, second = _my_date_pattern.search(aDateString).groups()
month = [
'JAN', 'FEB', 'MAR',
'APR', 'MAY', 'JUN',
'JUL', 'AUG', 'SEP',
'OCT', 'NOV', 'DEC'
].index(month.upper()) + 1
dt = datetime.datetime(
int(year), int(month), int(day),
int(hour), int(minute), int(second)
)
# dt = dt - datetime.timedelta(hours=1)
# dt = dt - dt.tzinfo.utfoffset(myTimeZone())
return (dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, 0, 0, 0)
def main():
print myDateHandler("Sat, 6 Sep 2008 21:16:33 EDT")
if __name__ == '__main__':
main()
Eche un vistazo a [esta respuesta] (http://stackoverflow.com/a/18646797/2697658). ¡Espero eso ayude! – juan
su formato específico de fecha/hora se puede manejar usando el paquete stdlib 'email.utils': [' ts = mktime_tz (parsedate_tz ('Sat, 6 Sep 2008 21:16:33 EDT')) '] (http: // stackoverflow .com/a/23117071/4279) – jfs