如何将 delta 添加到 python datetime.time? [英] How to add delta to python datetime.time?

查看:37
本文介绍了如何将 delta 添加到 python datetime.time?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

来自:

http://docs.python.org/py3k/library/datetime.html#timedelta-objects

<块引用>

一个timedelta对象代表一个持续时间,两个日期或时间.

那为什么我会出错:

<预><代码>>>>从日期时间导入日期时间、时间增量、时间>>>datetime.now() + timedelta(hours=12)datetime.datetime(2012, 9, 17, 6, 24, 9, 635862)>>>datetime.now().date() + timedelta(hours=12)datetime.date(2012, 9, 16)>>>datetime.now().time() + timedelta(hours=12)回溯(最近一次调用最后一次):文件<stdin>",第 1 行,在 <module> 中类型错误:+ 不支持的操作数类型:datetime.time"和datetime.timedelta"

解决方案

datetime.time 对象 不支持使用 datetime.timedeltas 的加法.

虽然有一个自然定义,时钟算法.你可以这样计算:

导入日期时间为 dt现在 = dt.datetime.now()delta = dt.timedelta(小时 = 12)t = 现在.time()打印(吨)# 12:39:11.039864打印((dt.datetime.combine(dt.date(1,1,1),t) + delta).time())# 00:39:11.039864

dt.datetime.combine(...) 将 datetime.time t 提升到 datetime.datetime 对象,增量为然后添加,并将结果返回到 datetime.time 对象.

From:

http://docs.python.org/py3k/library/datetime.html#timedelta-objects

A timedelta object represents a duration, the difference between two dates or times.

So why i get error with this:

>>> from datetime import datetime, timedelta, time
>>> datetime.now() + timedelta(hours=12)
datetime.datetime(2012, 9, 17, 6, 24, 9, 635862)
>>> datetime.now().date() + timedelta(hours=12)
datetime.date(2012, 9, 16)

>>> datetime.now().time() + timedelta(hours=12)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.timedelta'

解决方案

datetime.time objects do not support addition with datetime.timedeltas.

There is one natural definition though, clock arithmetic. You could compute it like this:

import datetime as dt
now = dt.datetime.now()
delta = dt.timedelta(hours = 12)
t = now.time()
print(t)
# 12:39:11.039864

print((dt.datetime.combine(dt.date(1,1,1),t) + delta).time())
# 00:39:11.039864

dt.datetime.combine(...) lifts the datetime.time t to a datetime.datetime object, the delta is then added, and the result is dropped back down to a datetime.time object.

这篇关于如何将 delta 添加到 python datetime.time?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆