我想以“%Y-%m-%d”格式获取从今年年初到今天的所有日期,是否有更简单的方法来获取daterange("2019-01-01", "2019-05-17")
之类的东西? >
这是我的审判,但我认为这不是pythonic
import datetime
def get_all_date_from_now_this_year():
date_format = "%Y-%m-%d"
day_today = datetime.datetime.today().date()
start_date = datetime.datetime.strptime("{}-01-01".format(day_today.year), date_format).date()
days_num = (day_today - start_date).days
count = 0
all_date_list = []
while count < days_num:
date = (start_date + datetime.timedelta(days=count)) .strftime(date_format)
count += 1
all_date_list.append(date)
return all_date_list
r_l = get_all_date_from_now_this_year()
任何评论都非常受欢迎。非常感谢。
答案 0 :(得分:0)
尝试一下。
import pandas as pd
date_list=pd.date_range("2019-01-01","2019-05-17")
输出:
DatetimeIndex(['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04',
'2019-01-05', '2019-01-06', '2019-01-07', '2019-01-08',
'2019-01-09', '2019-01-10',
...
'2019-05-08', '2019-05-09', '2019-05-10', '2019-05-11',
'2019-05-12', '2019-05-13', '2019-05-14', '2019-05-15',
'2019-05-16', '2019-05-17'],
dtype='datetime64[ns]', length=137, freq='D')
答案 1 :(得分:0)
这是我的解决方案,只需要内置库即可。
from datetime import datetime, timedelta
date_fmt = '%Y-%m-%d'
td = timedelta(days=1)
def date_range(end_date, start_date):
ed = datetime.strptime(end_date, date_fmt)
sd = datetime.strptime(start_date, date_fmt)
d = sd
dates = []
while d >= ed:
dates.append(d.strftime(date_fmt))
d -= td
return dates
这应该为您提供开始日期和结束日期之间的所有日期,包括YYYY-mm-dd
格式。
答案 2 :(得分:0)
使用datetime
模块。
例如:
import datetime
def get_all_date_from_now_this_year(start):
today = datetime.datetime.now()
start = datetime.datetime.strptime(start, "%Y-%m-%d")
result = []
while today >= start:
result.append(start.strftime("%Y-%m-%d"))
start = start + datetime.timedelta(days=1)
return result
start = "2019-01-01"
print(get_all_date_from_now_this_year(start))
输出:
['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04', ....'2019-05-15', '2019-05-16', '2019-05-17']