gpt4 book ai didi

python - 考虑到夏令时,将 EST 时间戳转换为 GMT

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:47 26 4
gpt4 key购买 nike

我有一个时间戳,表示自 1970 年 1432202088224 以来的毫秒数,转换为 Thursday, May 21, 2015 5:54:48 AM EDT。我想编写一个 python 函数,将该时间戳转换为格林威治标准时间的毫秒数。我不能天真地将四个小时(3600000 毫秒)添加到现有时间戳,因为半年我将关闭一个小时。

我试过使用 datetimepytz 编写一个函数

def convert_mills_GMT(milliseconds):
converted_raw = datetime.datetime.fromtimestamp(milliseconds/1000.0)
date_eastern = eastern.localize(converted_raw, is_dst=True)
date_utc = date_eastern.astimezone(utc)
return int(date_utc.strftime("%s")) * 1000

使用 1432202088224 的输入,此函数返回 1432220088000,即 Thursday, May 21, 2015 10:54:48 AM EDT 什么时候我想要的是上午 9:54。我错过了什么?

最佳答案

没有“EST 时间戳”这样的东西。如果您需要“GMT 时间戳”,那么您已经有了它。

从以毫秒数给出的 POSIX 时间戳获取 UTC 时间:

>>> from datetime import datetime, timedelta
>>> timestamp = 1432202088224
>>> utc_time = datetime(1970, 1, 1) + timedelta(milliseconds=timestamp)
>>> utc_time.strftime('%A, %B %d, %Y %H:%M:%S %p UTC')
'Thursday, May 21, 2015 09:54:48 AM UTC'

我们可以通过将 UTC 时间转换回“EST”时区来检查结果是否正确:

>>> import pytz # $ pip install pytz
>>> est = utc_time.replace(tzinfo=pytz.utc).astimezone(pytz.timezone('US/Eastern'))
>>> est.strftime('%A, %B %d, %Y %H:%M:%S %p %Z')
'Thursday, May 21, 2015 05:54:48 AM EDT'

关于python - 考虑到夏令时,将 EST 时间戳转换为 GMT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30403215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com