将日期时间转换为时间戳

convert datetime to timestamp

首先,这个时间格式'2020-01-01T01:39:40.000000Z'是什么意思,我的猜测是,它的意思是时区,我会更正。我想将它转换为 python

中的 Unix 时间戳

这个很好用

from datetime import datetime
datetime.fromisoformat('2011-11-04T00:05:23').timestamp()

产出

1320365123.0

但这给我一个错误

from datetime import datetime
datetime.fromisoformat('2020-01-01T01:39:40.000000Z').timestamp()

错误

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-39-0489f93685df> in <module>
      3 # datetime.fromisoformat('2011-11-04T00:05:23').timestamp()
      4 
----> 5 datetime.fromisoformat('2020-01-01T01:39:40.000000Z').timestamp()

ValueError: Invalid isoformat string: '2020-01-01T01:39:40.000000Z'

我的数据以这种格式出现,因为我不知道它是什么意思。我没有动力在转换

之前删除 000000Z

Python 不完全支持 ISO 8601 标准。您应该改用 dateutil.parser:

>>> from dateutil.parser import isoparse
>>> isoparse("2020-01-01T01:39:40.000000Z")
datetime.datetime(2020, 1, 1, 1, 39, 40, tzinfo=tzutc())