Python:pytz本地化时间戳中的UTC时间戳

Python:pytz本地化时间戳中的UTC时间戳,python,pytz,Python,Pytz,我正在尝试使用pytz将时间戳字符串从unix纪元转换为等效的秒数。我对下面代码的输出感到困惑 import datetime import pytz exif = '2008:05:03 16:23:16' dtexif = datetime.datetime.strptime(exif, '%Y:%m:%d %H:%M:%S') print dtexif zrh = pytz.timezone('Europe/Zurich') tztime = zrh.localize(dtexif)

我正在尝试使用
pytz
将时间戳字符串从unix纪元转换为等效的秒数。我对下面代码的输出感到困惑

import datetime
import pytz

exif = '2008:05:03 16:23:16'
dtexif = datetime.datetime.strptime(exif, '%Y:%m:%d %H:%M:%S')
print dtexif

zrh = pytz.timezone('Europe/Zurich')
tztime = zrh.localize(dtexif)
print tztime

tzfloat = float(tztime.astimezone(pytz.utc).strftime('%s'))
utctime = pytz.utc.localize(datetime.datetime.fromtimestamp(tzfloat))
print utctime

print 'seconds since epoch: %.1f' % tzfloat
使用pytz-2016.10,它打印:

2008-05-03 16:23:16
2008-05-03 16:23:16+02:00
2008-05-03 15:23:16+00:00
seconds since epoch: 1209849796.0
我希望最后一行是:

2008-05-03 14:23:16+00:00
最后一行让我感到困惑,它代表了


我哪里出错了?

看起来我搜索得不够努力,这是在这里解决的:

计算tzfloat的线应为:

tzfloat=(tztime-datetime.datetime(1970,1,1,tzinfo=pytz.utc)).total_seconds()


我错误地假设时间戳已经是相对于历元的。

看起来我没有足够努力地搜索,这是在这里解决的:

计算tzfloat的线应为:

tzfloat=(tztime-datetime.datetime(1970,1,1,tzinfo=pytz.utc)).total_seconds()


我错误地假设时间戳已经是相对于历元的。

夏令时?看起来
pytz
已经通过
localize()
处理了这个问题。夏时制的右偏移量(+2:00)已应用。夏时制时间?看起来
pytz
已经通过
localize()
解决了这个问题。将应用夏令时的右偏移(+2:00)。