首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >datetime.time在datetime.datetime中的转换

问datetime.time在datetime.datetime中的转换
EN

Stack Overflow用户
提问于 2021-05-03 09:42:23
回答 2查看 1.2K关注 0票数 0

我想以秒为单位计算两个日期之间的差异。

代码语言:javascript
复制
def delta_seconds(datetime, origin):
   td = datetime - origin  # datetime - date
   return float((td.microseconds + (td.seconds + td.days * 24 * 3600) * 10 ** 6)) / 10 ** 6

我无法计算差额,它显示了一个错误:

代码语言:javascript
复制
TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.datetime

因此,我想将datetime.time转换为datetime.datetime。

(datetime是datetime.time obj,原点是datetime.datetime obj)

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-04 18:34:29

  1. 当您可以从标准库中获得所需的东西时,不要自己执行计算。两个datetime.datetime对象之间的区别给出了已经具有类属性的datetime.timedelta,seconds,您可以从函数返回这个属性。
  2. 您可以使用datetime.combine组合datetime.date和datetime.time。

演示:

代码语言:javascript
复制
from datetime import datetime, date, time


def delta_seconds(end, origin):
    return (end - origin).seconds


# Test
date = date(2021, 5, 3)
time = time(10, 20, 30)
origin = datetime.combine(date, time)
end = datetime.now()
print(delta_seconds(end, origin))

输出:

代码语言:javascript
复制
33213
票数 1
EN

Stack Overflow用户

发布于 2021-05-03 10:09:00

两个不同datetime的减法已经返回一个增量。时三角洲

params origin和datetime必须是datetime对象。将两个参数都设置为datetime对象或datetime.time对象到当前datetime` ` object。

为了将time转换为datetime,这可能会帮助或者手动调整字段。

代码语言:javascript
复制
import datetime

t = datetime.time(1, 2, 3)
print('t :', t)

d = datetime.date.today()
print('d :', d)

dt = datetime.datetime.combine(d, t)
print('dt:', dt)

输出

代码语言:javascript
复制
t : 01:02:03
d : 2013-02-21
dt: 2013-02-21 01:02:03
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67366697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档