我有一个以ISO8601格式表示的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, 7, 21)
In [26]: datetime.datetime.fromtimestamp(ti)
Out[26]: datetime.datetime(2009, 7, 17, 2, 21)
In [27]: ti
Out[27]: 1247815260.0
In [28]: parseddate
Out[28]: datetime.datetime(2009, 7, 17, 1, 21, tzinfo=<iso8601.iso8601.Utc object at 0x01D74C70>)
如您所见,我无法获得正确的时间。如果我使用fromtimestamp()函数,小时数会超前一个小时,而如果我使用utcfromtimestamp()函数,则会超前六个小时。
您有什么建议吗?
谢谢!
timegm()
返回整数秒数。它忽略秒的小数部分。 - jfsutctimetuple()
和timetuple()
返回的值是相同的! - Leonid Ganeline