将字符串转换为没有时间信息的日期对象
将字符串转换为没有时间信息的日期对象
我想把一个字符串转换成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日
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