[Python--]用Python实现时间离散化

最近在分析日志的时候遇到这样一个需求。统计每小时的角色创建总数和每10分钟的在线人数。需求具体实现不做讨论, 这里主要记录如何将日志时间离散到相应区间的问题。先解释每小时的概念,按24小时算,一天可以分这么几个时间点:00:00:00,01:00:00,02:00:00,...,23:00:00。那么在[N小时0分1秒,N+1小时0分0秒](注意是闭区间),这段时间是要划分到N+1小时的, 即, 从12:00:01开始到13:00:00结束这段时间归并13:00:00,特别的,23:00:01至次日00:00:00是属于次日的00:00:00。


【方案1】时间取到小时, 分钟和秒全部用0代替,这样造成的问题是区间划分不正确,[00:00:00,00:59:59]被划分到时间点00:00:00上,与需求方的意思相违背(这里真的要吐槽一下, 代码开始之前一定要做好需求分析, 大部分的统计结果不合适都是因为需求分析没有做好而导致的);

【方案2】通过判断分钟和秒是否为0,对hour进行操作,如果都为0,hour=N;如果不为0,hour=N+1。这里的问题在于,在23点时并不能单纯的做加1操作; 

【Final】使用datetime模块中的timedelta, 不用判断分钟和秒是否为0,也不用判断是不是在23点,代码如下:



def time_to
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值