python如何分割年月日_将Python日期时间拆分为小时对齐的块

本文介绍了如何使用Python的dateutil库,通过rrule函数将datetime.datetime实例和timedelta实例拆分为小时对齐的时间段列表。提供了一个名为hours_aligned的函数示例,用于生成对齐的小时时间段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有一个datetime.datetime实例,d和一个datetime.timedelta实例td,我正在尝试编写一个将范围(d,d td)分解为[(d,x1),(x1,x2)的函数. ..,(xn,d td)],xn变量全部与小时对齐.

例如,如果

d = datetime.datetime(2012, 9, 8, 18, 53, 34)

td = datetime.timedelta(hours=2, minutes=34, seconds=5)

我想要一份清单

[(datetime.datetime(..., 18, 53, 34), datetime.datetime(..., 19, 0, 0)),

(datetime.datetime(..., 19, 0, 0), datetime.datetime(..., 20, 0, 0)),

(datetime.datetime(..., 20, 0, 0), datetime.datetime(..., 21, 0, 0)),

(datetime.datetime(..., 21, 0, 0), datetime.datetime(..., 21, 27, 39))]

任何人都可以建议一个很好的,Pythonic,完成这个的方法?

解决方法:

使用dateutil,您可以使用rrule生成列表:

import dateutil.rrule as rrule

import datetime

def hours_aligned(start, end, inc = True):

if inc: yield start

rule = rrule.rrule(rrule.HOURLY, byminute = 0, bysecond = 0, dtstart=start)

for x in rule.between(start, end, inc = False):

y

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值