我有一个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, 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(),小时将提前六个小时
有什么建议吗?
谢谢!
您可以使用^{} 在UTC中创建} 将其转换为unix时间戳:
struct_time
,然后使用^{这也会考虑任何夏时制时间偏移,因为
utctimetuple()
会使其正常化。有关详细信息,请参见another answer to similar question。
后面:
我只是猜测,但一个小时的差异可能不是因为时区,而是因为夏时制的开/关。
相关问题 更多 >
编程相关推荐