如何在 Python 中将 datettime 转换为 Solr 格式?

问题描述

如何转换:

'2020-01-21 12:23:54'

到这个(solr格式):

'2020-01-21T12:23:54.625Z' ??

如果不可能,如何直接以Solr格式(如上所示)直接获取Python中文件的日期(例如修改日期)?

解决方法

您可以使用 datetime 按照 Solr 的要求格式化日期(即 ISO-8601 中的 UTC),显式添加“Z”,因为 isoformat() 函数不包括任何时区信息:

from datetime import datetime
d = datetime.utcnow().isoformat(timespec='milliseconds') + 'Z'

从给定的日期字符串开始,您可以使用 strptime 解析它,然后将其转换为 iso(假设日期已经在 utc 中):

d = datetime.strptime('2020-01-21 12:23:54','%Y-%m-%d %H:%M:%S').isoformat() + 'Z'

如果您不需要更高的精度,您应该设置 timespec='seconds'(Solr 将忽略超过毫秒的分数)。