Generate date string range in python
Post date: Jan 6, 2016 6:49:09 AM
Use the package datetime.
- use datetime.datetime.strptime(date_string, date_string_format) to create datetime object
- use dt.strftime(format) to format the datetime output
- use datetime.timedelta() for arithmetic of datetime. More detail here.
Here is the function I use to create list of date range.
def generate_date_range(start_date, end_date, increment=1, format="%Y-%m-%d", verbose=False):
'''
Generate list of dates ranging from start_date to end_date inclusively.
:param start_date: The starting date, inclusive
:param end_date: The end date, inclusive
:return: a list of date of format 'YYYY-MM-DD'
'''
import datetime
date_list = []
dt = datetime.datetime.strptime(start_date, format)
end_date = datetime.datetime.strptime(end_date, format)
while dt <= end_date:
if verbose:
print str(dt.strftime(format))
date_list.append(str(dt.strftime(format)))
dt = dt + datetime.timedelta(days=increment)
return date_list
For example,
In [11]: generate_date_range('2015-12-30', '2016-01-03')
Out[11]: ['2015-12-30', '2015-12-31', '2016-01-01', '2016-01-02', '2016-01-03']
This post can be useful.