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



字符串时间戳为:

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()

实际上,@buran的答案是有效的。但是,如果没有,您可以使用dateutil.parser中的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

使用日期分析器库。

pip install dateparser

这是一个小片段

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

datetime.datetime(2021,3,21,6,51,48332000,tzinfo=<StaticTzInfo'UTC-07:00'>(

最新更新