可能重复:
如何从简单的字符串构造timedelta对象
我有一个格式的字符串,hours:minutes:seconds但它不是一天中的时间而是持续时间.例如,100:00:00手段100 hours.
我试图找到从当前时间偏移字符串中指定的时间的时间.我可以使用正则表达式手动拉开时间字符串并将其转换为秒并将其添加到返回的浮点数time.time(),但是有一个time函数来执行此操作吗?
该time.strptime()函数的格式似乎一天/日期字符串,而不是任意的字符串的时间工作.
import datetime
dur_str = "100:00:00"
h, m, s = map(int, dur_str.split(':'))
dur = datetime.timedelta(hours=h, minutes=m, seconds=s)
Run Code Online (Sandbox Code Playgroud)
不使用re,但有时理解正则表达式比编写 python 更费力。
>>> import datetime
>>> time_str = "100:00:00"
>>> hours, minutes, seconds = [int(i) for i in time_str.split(":")]
>>> time_in_seconds = hours * 60 * 60 + minutes * 60 + seconds
>>> time_in_seconds
360000
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2012, 10, 2, 10, 24, 6, 639000)
>>> new_time = now + datetime.timedelta(seconds=time_in_seconds)
>>> new_time
datetime.datetime(2012, 10, 6, 14, 24, 6, 639000)
Run Code Online (Sandbox Code Playgroud)
正如 nneonneo 指出的那样,datetime.timedelta()接受hours、minutes、 和seconds作为参数。所以你甚至可以做一些像这样的愚蠢的事情(不推荐):
>>> datetime.timedelta(**{k:v for k,v in zip(["hours", "minutes", "seconds"], [int(i) for i in "100:00:00".split(":")])})
datetime.timedelta(4, 14400)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3360 次 |
| 最近记录: |