我试过了:
timestamp = "2021-01-22T11:36:52.387000+01:00"
timestampObject = datetime.strptime(timestamp, '%Y-%m-%dT%H:%M:%S')
但是给了我错误:
<块引用>ValueError:未转换的数据仍然存在:.150000+01:00
其余部分是什么,我如何转换其余部分?还有“T”是什么意思?
答案 0 :(得分:1)
因为您还必须提供格式说明符来处理尾随微秒和时区说明符,就像错误告诉您的那样,请参阅 Conversion of datetime string with microseconds 和 ...milliseconds。可能你需要dict.values()
。请参阅日期时间文档。
此外,“T”仅代表“时间”;它将日期字段与时间字段分开,以便于解析(使用 sed/perl/grep/regex/etc.)。如果您想 a) 在日志中定位日期时间或 b) 丢弃/分离时间部分与日期部分,则可以轻松实现。
答案 1 :(得分:1)
您拥有的字符串格式实际上是 ISO 格式的日期时间。幸运的是 datetime 有一个函数来处理这个问题,你不必担心为尾随时间对象提供格式说明符...
你只想要日期吗?
>>> datetime.datetime.fromisoformat("2021-01-22T11:36:52.387000+01:00").date()
datetime.date(2021, 1, 22)
或者你想要日期时间?
>>> datetime.datetime.fromisoformat("2021-01-22T11:36:52.387000+01:00")
datetime.datetime(2021, 1, 22, 11, 36, 52, 387000, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600)))
答案 2 :(得分:0)
这对我有用:
timestampObject = datetime.fromisoformat(
"2021-01-22T11:36:52.387000+01:00" ).date()
print('timestampObject.year: ', timestampObject.year)
<块引用>
timestampObject.year:2021