鱼C论坛

 找回密码
 立即注册
查看: 1720|回复: 8

[已解决]请问如何对时间进行加减运算?

[复制链接]
发表于 2019-10-4 22:50:53 | 显示全部楼层 |阅读模式
5鱼币
大家国庆好鸭~

我有个问题想要请教一下.

对于时间这样的字符串,有什么办法进行加减运算。

  1. t1 = '14:32:01.236'
  2. t2 = '14:32:35.547'
  3. print(t2-t1)
复制代码


我现在想到的办法是用split方法把时间分割成小时、分钟、秒然后全部统一成秒
  1. tim1 = 3600*int(t1.split(':')[0])+ 60*int(t1.split(':')[1])+int(t1.split(':')[2])
复制代码
但是这样做感觉有点麻烦而且忽略了毫秒以下的时间,请问有没有什么模块或者工具能够直接对时间进行加减呢??
谢谢!
最佳答案
2019-10-4 22:50:54
  1. >>> import functools
  2. >>> t1 = '14:32:01.236'
  3. >>> functools.reduce(lambda x, y: 60 * float(x) + float(y), t1.split(':'))
  4. 52321.236
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-4 22:50:54 | 显示全部楼层    本楼为最佳答案   
  1. >>> import functools
  2. >>> t1 = '14:32:01.236'
  3. >>> functools.reduce(lambda x, y: 60 * float(x) + float(y), t1.split(':'))
  4. 52321.236
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-5 08:14:49 | 显示全部楼层
可以用 datetime 模块。

  1. import datetime as d
  2. d1 = d.datetime.fromisoformat('2019-10-05 14:32:01.236')
  3. d2 = d.datetime.fromisoformat('2019-10-05 14:32:35.547')
  4. # microseconds 代表微秒,还可以是 second(秒)
  5. print((d2 - d1).microseconds)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-5 14:44:15 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-10-18 17:41:44 | 显示全部楼层

感谢回复,不过我还没有学过functools这个模块,暂时还搞不懂怎么用~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-10-18 17:44:40 | 显示全部楼层
zltzlt 发表于 2019-10-5 08:14
可以用 datetime 模块。

谢谢解答,因为我的原始数据里的时间都没有包含日期,并不是标准时间格式,直接用fromisoformat方法的话回提示错误ValueError: Invalid isoformat string: 14:32:01.236, 请问这种情况下应该怎么处理?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-18 18:19:02 | 显示全部楼层
wrpython 发表于 2019-10-18 17:44
谢谢解答,因为我的原始数据里的时间都没有包含日期,并不是标准时间格式,直接用fromisoformat方法的话 ...

随便加一个日期,例如:2019-10-18 14:32:01.236
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-10-18 21:24:45 | 显示全部楼层
zltzlt 发表于 2019-10-18 18:19
随便加一个日期,例如:2019-10-18 14:32:01.236

实际使用时原始数据是存放在另一个文件里的,我没有办法直接增加一个日期进去,只能读取出来以后再添加一个日期进去把数据改成标准格式~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-10-18 21:26:22 | 显示全部楼层

我去查了一下,搞清了reduce的用法,好像还蛮好用的~谢谢解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 23:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表