如何在转换为Unix时指定时区(UTC)? (Python)
发布时间:2020-12-15 17:03:04 所属栏目:安全 来源:网络整理
导读:我有一个IS8601格式的utc时间戳,我试图将其转换为unix时间.这是我的控制台会话: In [9]: mydateOut[9]: '2009-07-17T01:21:00.000Z'In [10]: parseddate = iso8601.parse_date(mydate)In [14]: ti = time.mktime(parseddate.timetuple())In [25]: datetime.
我有一个IS8601格式的utc时间戳,我试图将其转换为unix时间.这是我的控制台会话:
In [9]: mydate Out[9]: '2009-07-17T01:21:00.000Z' In [10]: parseddate = iso8601.parse_date(mydate) In [14]: ti = time.mktime(parseddate.timetuple()) In [25]: datetime.datetime.utcfromtimestamp(ti) Out[25]: datetime.datetime(2009,7,17,21) In [26]: datetime.datetime.fromtimestamp(ti) Out[26]: datetime.datetime(2009,2,21) In [27]: ti Out[27]: 1247815260.0 In [28]: parseddate Out[28]: datetime.datetime(2009,1,21,tzinfo=<iso8601.iso8601.Utc object at 0x01D74C70>) 如你所见,我无法回到正确的时间.如果我使用fromtimestamp(),则小时为1,如果我使用utcfromtimestamp(),则提前6小时 有什么建议? 谢谢!
您可以使用
datetime.utctimetuple() 创建UTC格式的struct_time,然后将其转换为带有
calendar.timegm() 的unix时间戳:
calendar.timegm(parseddate.utctimetuple()) 这也可以处理任何夏令时偏移,因为utctimetuple()会对此进行规范化. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |