如何解决为什么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') - timedelta(days=360)).strftime('%Y-%m-%d')
print(new_start_date)
返回是
2019-05-01 00:00:00
2019-05-06
看起来,第一个“ start_date”包含日期和时间,第二个“ new_start_date”仅包含日期。为什么? 如何更改以使第一个“ start_date”仅返回日期,没有时间?
解决方法
strptime
返回一个datetime
对象。 Documentation
classmethod datetime.strptime(date_string,format)
返回与date_string相对应的日期时间,并根据格式进行解析。
在strftime
中,返回由格式化字符串指定的字符串。 Documentation
date.strftime(format)
返回一个表示日期的字符串,由明确的格式字符串控制。表示小时,分钟或秒的格式代码将显示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
,
new_start_date
不是date
,而是string
。您可以删除strftime
以获取datetime
对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。