python - 将两个日期时间对象转换为每月日期时间范围
问题描述
我有两个datetime
对象,比如说start_date
和end_date
。我想做的是制作一个datetime
对象列表。
>>> from datetime import datetime
>>> from dateutil.rrule import rrule, MONTHLY
>>> start_date = datetime(2018, 9, 6, 0,)
>>> end_date = datetime(2018, 11, 26, 23, 59, 59)
>>> list(rrule(MONTHLY, dtstart=start_date, until=end_date))
[datetime.datetime(2018, 9, 6, 0, 0), datetime.datetime(2018, 10, 6, 0, 0), datetime.datetime(2018, 11, 6, 0, 0)]
我可以用 来做到这一点rrule()
,它正在从一个日期移动到另一个日期,但我希望它按月进行,并且还包括end_date
,
[
datetime.datetime(2018,9,6,0,0),
datetime.datetime(2018,9,30,23,59),
datetime.datetime(2018,10,1,0,0),
datetime.datetime(2018,10,31,23,59),
datetime.datetime(2018,11,1,0,0),
datetime.datetime(2018,11,26,23,59)
]
我宁愿在不使用 pandas 或 numpy 的情况下执行此操作。
解决方案
这是获取两个范围之间的日期列表的方法。您可以对其进行修改以添加某些日期。
from datetime import datetime
from datetime import timedelta
import calendar
dates = []
start_date = datetime(2018, 9, 6, 0,)
end_date = datetime(2018, 10, 10, 0,)
index_date = start_date
while True:
index_date = index_date
dates.append(index_date)
dayy = calendar.monthrange(index_date.year,index_date.month)
index_date = index_date.replace(day= dayy[1])
if index_date > end_date:
break
dates.append(index_date)
index_date = index_date + timedelta(days=1)
if index_date > end_date:
break
print dates
推荐阅读
- python - 如何使 tkinter 与 macOS python3 一起工作?
- react-native - React-Native:屏幕被切成两半
- docker - 如何检查 docker 中的当前/默认日志驱动程序?
- c++ - WriteFile() 函数因偏移量大而失败
- sql - 如何在sql中将多个日期格式字符串转换为日期时间?
- linux - Elasticsearch:无法验证来自节点的传入加入请求
- algorithm - 挖空 3D 网格
- android - 使用PHP将数据从手机(sqlite)批量上传到mysql服务器
- javascript - Webkit 浏览器显示空白
- r - 将字符串日期列转换为 R 中的标准日期