Python 为什么datetime对象有时返回日期,有时返回日期和时间?

Python 为什么datetime对象有时返回日期,有时返回日期和时间?,python,datetime,Python,Datetime,我有一个有线问题 from datetime import datetime, timedelta start_date = '2019-05-01' end_date = '2020-04-30' start_date = datetime.strptime(start_date, "%Y-%m-%d") print(start_date) new_start_date = (datetime.strptime(end_date, '%Y-%m-%d') - timed

我有一个有线问题

from datetime import datetime, timedelta
start_date = '2019-05-01'
end_date = '2020-04-30'

start_date = datetime.strptime(start_date, "%Y-%m-%d")
print(start_date)

new_start_date = (datetime.strptime(end_date, '%Y-%m-%d') - timedelta(days=360)).strftime('%Y-%m-%d')
print(new_start_date)
回报是

2019-05-01 00:00:00
2019-05-06
看起来,第一个“开始日期”包含日期和时间,第二个“新开始日期”只有日期。为什么?
如何更改以使第一个“开始日期”仅返回日期,而不返回时间?

新的开始日期
不是日期,而是字符串。您可以删除
strftime
以获取
datetime
对象。

strptime
返回一个
datetime
对象

classmethod datetime.strTime(日期字符串,格式)

返回与date_字符串相对应的datetime,根据格式进行分析

其中as
strftime
返回由格式化字符串指定的字符串

日期.strftime(格式)

返回表示日期的字符串,由显式格式字符串控制。表示小时、分钟或秒的格式代码将显示0值。有关格式化指令的完整列表,请参阅strftime()和strptime()行为

以你为例

datetime.strptime(start_date, "%Y-%m-%d") #2019-05-01 00:00:00
但是,如果要使用
strftime
格式化此文件,则会继续删除时间

datetime.strptime(start_date, "%Y-%m-%d").strftime('%Y-%m-%d')) #2019-05-01