Python 在datetime.datetime中转换datetime.time
我想计算两个日期之间的秒差Python 在datetime.datetime中转换datetime.time,python,datetime,time,Python,Datetime,Time,我想计算两个日期之间的秒差 def delta_seconds(datetime, origin): td = datetime - origin # datetime - date return float((td.microseconds + (td.seconds + td.days * 24 * 3600) * 10 ** 6)) / 10 ** 6 我无法计算差异,它显示了以下错误: TypeError: unsupported operand type(s) for
def delta_seconds(datetime, origin):
td = datetime - origin # datetime - date
return float((td.microseconds + (td.seconds + td.days * 24 * 3600) * 10 ** 6)) / 10 ** 6
我无法计算差异,它显示了以下错误:
TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.datetime
所以,我想把datetime.time转换成datetime.datetime
(datetime是datetime.time对象,原点是datetime.datetime对象)
有什么建议吗?减去两个不同的
datetime
已经返回一个增量
参数origin
和datetime
必须是datetime
对象。将两个参数都设置为datetime
对象,或将datetime.time
对象设置为当前datetime`对象
要将时间
转换为日期时间
,可能会有帮助,或者您可以手动调整字段
导入日期时间
t=datetime.time(1,2,3)
打印('t:',t)
d=datetime.date.today()
打印('d:',d)
dt=datetime.datetime.combine(d,t)
打印('dt:',dt)
输出
t:01:02:03
d:2013-02-21
dt:2013-02-21 01:02:03
两个不同的日期时间的相减已经返回一个增量
参数origin
和datetime
必须是datetime
对象。将两个参数都设置为datetime
对象,或将datetime.time
对象设置为当前datetime`对象
要将时间
转换为日期时间
,可能会有帮助,或者您可以手动调整字段
导入日期时间
t=datetime.time(1,2,3)
打印('t:',t)
d=datetime.date.today()
打印('d:',d)
dt=datetime.datetime.combine(d,t)
打印('dt:',dt)
输出
t:01:02:03
d:2013-02-21
dt:2013-02-21 01:02:03
当您可以从标准库中获取所需内容时,切勿自行执行计算。两个datetime.datetime
对象之间的差异为您提供了datetime.timedelta
,它已经有一个class属性,seconds
,您可以从函数返回该属性
您可以使用组合datetime.date
和datetime.time
演示:
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))
33213
输出:
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))
33213
当您可以从标准库中获取所需内容时,切勿自行执行计算。两个datetime.datetime
对象之间的差异为您提供了datetime.timedelta
,它已经有一个class属性,seconds
,您可以从函数返回该属性
您可以使用组合datetime.date
和datetime.time
演示:
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))
33213
输出:
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))
33213
您的问题是“日期之间的差异”,但您使用的是datetime.time?你能给出一个具体的例子吗?我从一个nmea句子(object\u nmea.timestamp)中检索到一个时间戳。此时间戳是datetime.time对象。然后我从一个nmea句子(object\u nmea.date)中检索日期,它是一个datetime.date对象。我把它转换成datetime.datetime。现在,theese,我想计算秒数的差异,为了得到正确的结果,你们有一个日期和时间,你们把它组合成一个datetime对象?你想知道那个日期(给定某个时间)过去了多少秒吗?是的,我有两个日期,我想知道datetime(datetime.time)和origin(datetime.datetime)过去了多少秒。但我不能这样做,因为它们的类型不同。通过将日期对象与时间零点相结合,可以很容易地从日期对象中获取日期时间对象;像datetime\u obj=datetime.datetime.combine(date\u obj,datetime.time(0))
你的问题是“日期之间的差异”,但你用的是datetime.time?你能给出一个具体的例子吗?我从一个nmea句子(object\u nmea.timestamp)中检索到一个时间戳。此时间戳是datetime.time对象。然后我从一个nmea句子(object\u nmea.date)中检索日期,它是一个datetime.date对象。我把它转换成datetime.datetime。现在,theese,我想计算秒数的差异,为了得到正确的结果,你们有一个日期和时间,你们把它组合成一个datetime对象?你想知道那个日期(给定某个时间)过去了多少秒吗?是的,我有两个日期,我想知道datetime(datetime.time)和origin(datetime.datetime)过去了多少秒。但我不能这样做,因为它们的类型不同。通过将日期对象与时间零点相结合,可以很容易地从日期对象中获取日期时间对象;比如datetime\u obj=datetime.datetime.combine(date\u obj,datetime.time(0))
Ah ok,这样我可以用“result.seconds”替换秒内转换(返回浮点(…)。明天我会修复它。谢谢!啊ok,这样我可以用“result.seconds”替换秒内转换(返回浮点(…)。明天我会修复它。谢谢!