将字符串转换为没有时间信息的日期对象

29 浏览
0 Comments

将字符串转换为没有时间信息的日期对象

我想把一个字符串转换成Python日期对象。如文档所述,我使用d = datetime.strptime(\"25-01-1973\", \"%d-%m-%Y\"),这会返回datetime.datetime(1973, 1, 25, 0, 0)

当我使用d.isoformat()时,我得到了\'1973-01-25T00:00:00\',但是我想要得到1973-01-25(没有时间信息),正如文档所述:

date.isoformat()
Return a string representing the date in ISO 8601 format, ‘YYYY-MM-DD’. For example, date(2002, 12, 4).isoformat() == '2002-12-04'.

我知道我可以使用SimpleDateFormat等工具,但由于文档中明确提到了isoformat()示例,我不确定为什么在日期之后会得到不必要的时间信息。

我猜我漏了什么细节?

admin 更改状态以发布 2023年5月23日
0
0 Comments

datetime.datetime.strptime返回的对象是一个datetime.datetime对象,而不是一个datetime.date对象。因此,它将包括时间信息,并且在调用isoformat()时将包括此信息。

您可以使用datetime.datetime.date()方法将其转换为date对象,如下所示。

import datetime as dt
d = dt.datetime.strptime("25-01-1973", "%d-%m-%Y")
# Convert datetime object to date object.
d = d.date()
print(d.isoformat())
# 1973-01-25

0