Python 如何从字符串时间戳中获取日期时间

Python 如何从字符串时间戳中获取日期时间,python,datetime,time,Python,Datetime,Time,字符串时间戳为: lastStartTimestamp = '2021-03-21T06:51:48.332-07:00' 我继续声明datetime对象 import datetime date_time_obj = datetime.datetime.strptime(lastStartTimestamp, '%Y-%m-%dT%H:%M:%S.%fZ') 但代码失败了 ValueError: time data '2021-03-21T06:51:48.332-07:00' does

字符串时间戳为:

lastStartTimestamp = '2021-03-21T06:51:48.332-07:00'
我继续声明
datetime
对象

import datetime
date_time_obj = datetime.datetime.strptime(lastStartTimestamp, '%Y-%m-%dT%H:%M:%S.%fZ')
但代码失败了

ValueError: time data '2021-03-21T06:51:48.332-07:00' does not match format '%Y-%m-%dT%H:%M:%S.%fZ'
有没有办法让
datetime
起作用

lastStartTimestamp = '2021-03-21T06:51:48.332-07:00'
import datetime
dt = datetime.datetime.fromisoformat(lastStartTimestamp)
date_time_obj = datetime.datetime.strptime(lastStartTimestamp, '%Y-%m-%dT%H:%M:%S.%f%z')
print(dt)
print(date_time_obj)
输出

2021-03-21 06:51:48.332000-07:00
2021-03-21 06:51:48.332000-07:00
注意,您可以使用
datetime.datetime.fromisoformat()

使用库

这里有一个小片段

import dateparser
lastStartTimestamp = '2021-03-21T06:51:48.332-07:00'
dateparser.parse(lastStartTimestamp)

datetime.datetime(2021,3,21,6,51,48,332000,tzinfo=)

实际上,@buran的答案是有效的。但是,如果没有,则可以使用中的
parse()
方法来解析任意日期时间字符串:

from dateutil.parser import parse
lastStartTimestamp = '2021-03-21T06:51:48.332-07:00'
date_time_obj = parse(lastStartTimestamp) # 2021-03-21 06:51:48.332000-07:00

好的,您有一个时间戳字符串
'2021-03-21T06:51:48.332-07:00'
,您希望格式
'%Y-%m-%dT%H:%m:%S.%fZ'
与之对应。为什么?一步一步地检查,找出字符串的哪个部分与
%Y
等对应,直到找到不对齐的部分。确保您考虑字符串的常数部分以及格式代码。如有必要,请再次参阅。
from dateutil.parser import parse
lastStartTimestamp = '2021-03-21T06:51:48.332-07:00'
date_time_obj = parse(lastStartTimestamp) # 2021-03-21 06:51:48.332000-07:00