【发布时间】:2017-06-21 22:37:21
【问题描述】:
我可以从 UTC 时间戳转换,例如1417392000 到包括夏令时的本地日期时间对象,但是当我尝试将本地日期时间对象转换为“本地时间戳”时,我得到与以前相同的 UTC 时间戳。
我是不是在圈子里思考,它们是一样的?我应该从传入的 UTC 时间戳中保存“本地时间戳”。
这是我的代码
print("UTC timestamp %d" % hour[0])
day = self.get_day(hour)
month = self.get_month(hour)
year = self.get_year(hour)
tz = pytz.timezone('Europe/Stockholm')
utc_dt = datetime.utcfromtimestamp(int(hour[0])).replace(tzinfo=pytz.utc)
print("UTC datetime %s" % utc_dt)
dt = tz.normalize(utc_dt.astimezone(tz))
print("STO datetime %s" % dt.strftime('%Y-%m-%d %H:%M:%S %Z%z'))
print("STO ts %d" % int(time.mktime(dt.timetuple())))
print("STO timestamp %d" % utc_dt.astimezone(tz).timestamp())
day = int(dt.strftime('%d'))
month = int(dt.strftime('%m'))
year = int(dt.strftime('%Y'))
输出
UTC timestamp 1417395600
UTC datetime 2014-12-01 01:00:00+00:00
STO datetime 2014-12-01 02:00:00 CET+0100
STO ts 1417395600
STO timestamp 1417395600
所有“时间戳”(即时间的整数表示)都是相同的。是否可以制作“本地时间戳”?数据类型应该是一个时间戳,它是一个数字并且在本地时间。
【问题讨论】:
标签: python datetime time timestamp pytz