关于python:将字符串转换为日期对象而不带时间信息

Converting string to date object without time info

我想将字符串转换为python日期对象。根据https://docs.python.org/2/library/datetime.html上的文档,我使用的是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(没有时间信息),根据文件:

1
2
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()示例,我不知道为什么在日期之后会收到不需要的时间信息。

我想我找不到细节了?


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

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

1
2
3
4
5
6
7
8
9
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