当前位置: 首页 > 面试题库 >

在Python中将N秒添加到datetime.time的标准方法是什么?

凌钊
2023-03-14
问题内容

给定datetime.timePython中的值,是否有标准的方法向其添加整数秒,例如11:34:59+ 3 = 11:35:02

这些明显的想法行不通:

>>> datetime.time(11, 34, 59) + 3
TypeError: unsupported operand type(s) for +: 'datetime.time' and 'int'
>>> datetime.time(11, 34, 59) + datetime.timedelta(0, 3)
TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.timedelta'
>>> datetime.time(11, 34, 59) + datetime.time(0, 0, 3)
TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.time'

最后,我编写了这样的函数:

def add_secs_to_time(timeval, secs_to_add):
    secs = timeval.hour * 3600 + timeval.minute * 60 + timeval.second
    secs += secs_to_add
    return datetime.time(secs // 3600, (secs % 3600) // 60, secs % 60)

我不禁以为我缺少一种更简单的方法来做到这一点。


问题答案:

你可以将完整datetime变量与一起使用timedelta,并提供一个虚拟日期,然后使用time来获取时间值。

例如:

import datetime
a = datetime.datetime(100,1,1,11,34,59)
b = a + datetime.timedelta(0,3) # days, seconds, then other fields.
print(a.time())
print(b.time())
得出两个值,相隔三秒:

11:34:59
11:35:02

你也可以选择更具可读性的

b = a + datetime.timedelta(seconds=3)

如果你这么倾向。

如果你追求的是可以执行此操作的函数,则可以使用addSecs以下方法进行研究:

import datetime

def addSecs(tm, secs):
    fulldate = datetime.datetime(100, 1, 1, tm.hour, tm.minute, tm.second)
    fulldate = fulldate + datetime.timedelta(seconds=secs)
    return fulldate.time()

a = datetime.datetime.now().time()
b = addSecs(a, 300)
print(a)
print(b)
输出:

 09:11:55.775695
 09:16:55


 类似资料:
  • 问题内容: 从: http://docs.python.org/py3k/library/datetime.html#timedelta- objects timedelta对象代表持续时间,即两个日期或时间之间的差。 那么,为什么我会出错: 问题答案: 对象不支持除了用秒。 虽然有一个自然的定义,时钟算术。您可以这样计算: 将datetime.time提升到一个对象,然后添加增量,然后将结果回落

  • 问题内容: 我有两个代表相同事件实例的对象-一个保存日期,另一个保存该事件的时间,我想创建一个datetime对象。 由于不能简单地添加日期和时间对象(以下调用失败): 问题答案: 在python docs中 。 退货

  • 我想在我的游戏中添加秒表。我计划修改此代码并添加到我的pygame中: 我是否应该在def init部分中添加一个计时器框,并为计时器代码创建一个新的def?我想让计时器不使用代码,因为我的游戏正在运行时钟。勾选(60),使其不会影响勾选 更新后,我的游戏代码如下:

  • 本文向大家介绍使用Java中的Calendar.add()方法将秒添加到当前日期,包括了使用Java中的Calendar.add()方法将秒添加到当前日期的使用技巧和注意事项,需要的朋友参考一下 为Java中的Calendar类导入以下软件包。 首先,创建一个Calendar对象并显示当前日期和时间。 现在,让我们使用calendar.add()方法和Calendar.SECOND常数增加秒数。

  • 问题内容: 例如: 还是在Python中有一个内置函数可以做到这一点? 问题答案: 没有人迄今已提到的新这是在2.7版所添加的选项 格式化规范的迷你语言 -见PEP 378:格式说明千位分隔符 在什么在Python 2.7文档的新 。它易于使用,因为您不必弄乱(但由于国际化而受到限制,请参阅原始的PEP 378 )。它适用于浮点数,整数和小数- 以及迷你语言规范中提供的所有其他格式设置功能。 用法

  • 问题内容: 我正在尝试转换两个“持续时间”,但是由于一个是a而另一个是a : 将a转换为a的有效方法是什么? 我已经检查了文档,并且没有内置的方法可以在这两种类型之间进行转换。 问题答案: 是 不是一个时间 ,它是一天一个点。如果要将其解释为持续时间,请将其转换为午夜以来的持续时间: 演示: 您可能首先需要检查如何获取对象,也许从输入数据中获取对象的路径更短?例如,请勿长时间使用。