一、问题描述
我希望生成如“1980/8/21"、“1980/8/22"、“1980/8/23"...格式的日期列表,即”斜杠“隔开年月日;同时个位数时不自动补零,如变为“1980/08/21"格式。
二、错误试探
尝试 datatime包,代码如下:
import datetime
def create_assist_date(datestart,dateend):
# 转为日期格式
datestart=datetime.datetime.strptime(datestart,'%Y/%#m/%#d')
dateend=datetime.datetime.strptime(dateend,'%Y/%#m/%#d')
date_list = []
date_list.append(datestart.strftime('%Y/%#m/%#d'))
while datestart<dateend:
# 日期叠加一天
datestart+=datetime.timedelta(days=+1)
# 日期转字符串存入列表
date_list.append(datestart.strftime('%Y/%#m/%#d'))
print(date_list)
if __name__ == '__main__':
create_assist_date(datestart = "2018/06/20",dateend = "2018/06/28")
#来源https://blog.csdn.net/joson1234567890/article/details/80946974
接着会报错:
'#' is a bad directive in format '%Y/%#m/%#d'
显然,用于取消自动补零的”#“格式不正确。
三、问题解决
使用pandas包,很简洁,上代码:
import pandas as pd
start_date = "20200704"#开始日期时间
end_date = "20200710"#结束日期时间
pd.date_range(start_date, end_date).strftime("%Y/%#m/%#d").tolist()
#运行结果:
#['2020/7/4',
# '2020/7/5',
# '2020/7/6',
# '2020/7/7',
# '2020/7/8',
# '2020/7/9',
# '2020/7/10']
#参考https://blog.csdn.net/m0_37586991/article/details/111052639
完美!bang~