计算字符串格式时间的时间间隔

有时候我们会得到一大堆的时间数据,我们想计算最大的时间跨度但又迫于数据都是字符串类型,而无从下手。下面我稍加总结下,使用的是Python语言,直接上代码:

import datetime

date = ['2019/2/28 11:25:05',
        '2019/2/14 20:00:00',
        '2019/7/19 18:19:54',
        '2019/8/19 11:48:23',
        '2019-11-22 16:54:42']

for i, day in enumerate(date):
    try:
    	# 如果字符串是 年/月/日 时:分:秒 格式
        t = datetime.datetime.strptime(str(day), '%Y/%m/%d %H:%M:%S')
    except ValueError:
    	# 如果字符串是 年-月-日 时:分:秒 格式
        t = datetime.datetime.strptime(str(day), '%Y-%m-%d %H:%M:%S')
    date[i] = t

interval = max(date)-min(date)
print(interval.days)  #返回相隔的天数
print(interval.seconds)		#返回相隔的秒数

知识点

  1. 函数datetime.datetime.strptime(date_string, format),它可以将按照一定的格式字符串类型的时间转换为datetime.datetime类。datetime.datetime类是Python的一个时间类,它有year、month、day、hour、minute、second属性,且它们之间可以直接相加减或做比较运算,非常方便。

  2. 在数据处理上,我们拿到的时间数据可能格式各异,有年-月-日年/月/日这些不同的样式,函数datetime.datetime.strptime(date_string, format)可以依据format对字符串进行有针对的处理(详细的用法见Python string to datetime – strptime()),这里使用python中的try异常处理语句,也可以用if

  3. 两个datetime.datetime相减返回一个时间间隔datetime.timedelta类,它常用的属性有daysseconds,分别返回间隔的天数和秒数,这里要注意它并没有年、月、时、分等属性,我们需要自己按照常识转换。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值