【问题标题】:Adding timedelta object to datetime将 timedelta 对象添加到 datetime
【发布时间】:2017-09-12 00:30:36
【问题描述】:

我的 timedelta 对象如下所示:txdelta = 00:30:00。我想将它添加到日期时间对象,但它始终无法正常工作:

from datetime import datetime, date, time, timedelta
localdt = datetime.combine(datetime.strptime('2015-06-18', '%Y-%m-%d').date(),
(23:35:02+timedelta(txdelta)).time())

请注意,23:35:02 已经是一个日期时间对象。我收到此错误消息:

TypeError: unsupported type for timedelta days component: datetime.timedelta

我做错了什么?

【问题讨论】:

  • 更新您的示例,使其按原样在 Python 2.7 中运行。现在它返回SyntaxError: invalid syntax。让它返回您声称的错误。请参阅minimal reproducible example 了解发布代码的指南。

标签: python python-2.7 datetime timedelta


【解决方案1】:

创建time 对象的方式很奇怪。如果你不习惯,我强烈建议你这样声明:

txdelta = timedelta(minutes=30)
tdelta = time(hour=1, minute=35, second=2)

如果我猜对了,您尝试将 datetimetimedelta 组合在一起。下面的完整代码应该可以解决问题:

from datetime import datetime, date, time, timedelta

txdelta = timedelta(minutes=30)
tdelta = time(hour=1, minute=35, second=2)
localdt = datetime.combine(datetime.strptime('2015-06-18', '%Y-%m-%d').date(), tdelta) + txdelta

print(localdt)

基本上,您可以将日期时间对象与时间对象结合起来,然后简单地添加 timedelta 对象。

输出是:

2015-06-18 02:05:02

【讨论】:

    猜你喜欢
    • 2017-04-06
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    相关资源
    最近更新 更多