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

时间:2014-04-27 13:55:43

标签: python

我想将字符串转换为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(没有时间信息):

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

我想我在某个地方错过了一个细节?

1 个答案:

答案 0 :(得分:4)

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