我有一个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()会对此进行规范化.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。