gpt4 book ai didi

python - 在 Python 中,如何将这种格式转换为 unix 时间戳?

转载 作者:太空狗 更新时间:2023-10-29 20:54:35 25 4
gpt4 key购买 nike

Mon Jul 09 09:20:28 +0000 2012

如果我有像字符串这样的格式,我怎样才能把它变成一个 unix 时间戳?

注意:我从 Twitter 的 API 获取此格式:

https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=twitter

最佳答案

最好的选择是使用 dateutil.parser.parse(),它会为您提供一个带有适当时区信息的 datetime 对象:

>>> import dateutil.parser
>>> dt = dateutil.parser.parse('Mon Jul 09 09:20:28 +0200 2012')
>>> dt
datetime.datetime(2012, 7, 9, 9, 20, 28, tzinfo=tzoffset(None, 7200))

现在您只需要将其转换为 UNIX 时间戳:

>>> import time
>>> int(time.mktime(dt.timetuple()))
1341822028

您拥有的格式也可以使用 email.utils.parsedate_tz 轻松解析:

>>> import datetime
>>> import email.utils
>>> parts = email.utils.parsedate_tz('Mon Jul 09 09:20:28 +0200 2012')
>>> dt = datetime.datetime(*parts[:6]) - datetime.timedelta(seconds=parts[-1])
>>> str(dt)
'2012-07-09 07:20:28'

这实际上是 Python 3.3 中 email.utils.parsedate_to_datetime 的实现方式(如果您想将其复制并粘贴到您的项目中,请将 __parsedate_tz 替换为 parsedate_tz 来自 email.utils):

def parsedate_to_datetime(data):
if not data:
return None
*dtuple, tz = __parsedate_tz(data)
if tz is None:
return datetime.datetime(*dtuple[:6])
return datetime.datetime(*dtuple[:6],
tzinfo=datetime.timezone(datetime.timedelta(seconds=tz)))

关于python - 在 Python 中,如何将这种格式转换为 unix 时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11402390/

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