gpt4 book ai didi

python - 如何在 Python 中将时间值添加到日期时间值?

转载 作者:行者123 更新时间:2023-11-28 22:26:10 25 4
gpt4 key购买 nike

我有一个简单的问题(至少我是这么认为的),我想在 Python 中将时间值添加到日期时间值。这些值是从 Excel 文件中读取的。

我有以下代码:

import xlrd
from datetime import time, datetime, timedelta
book = xlrd.open_workbook('C:\\Users\eline\Documents\***\***\Python\Example 1.xlsx')
sh = book.sheet_by_name("test")

arr_time = datetime(*xlrd.xldate_as_tuple(sh.cell_value(1,2), book.datemode))
print(arr_time)

a2 = sh.cell_value(1,5)
# converting float from excel to time value
print(int(a2*24*3600))
x = int(a2*24*3600)
slack_time = time(x//3600, (x%3600)//60, x%60)
print(slack_time)

new_arr_time = arr_time + slack_time
print(new_arr_time)

arr_time 在这里是一个可以变化的日期时间值,例如:

2016-08-28 13:10:00

slack_time 在这里是以分钟(有时是几小时)为单位的时间,可以变化例如:

00:15:00

我想将松弛时间(例如 15 分钟)添加到 arr_time。因此,对于这个例子,我想获得 new_arr_time 的以下输出:

2016-08-28 13:25:00

但是,在运行我的代码时出现以下错误:“类型错误:+ 不支持的操作数类型:‘datetime.datetime’ 和 ‘datetime.time’”。由此,我了解到我无法将时间值添加到日期时间值,但是当将 slack_time 转换为日期时间值然后将 slack_time 添加到 arr_time 时,我得到了类似的错误(尽管减法是这样的)。我知道我可以使用 timedelta(minutes = 15),但由于 excel 文件中的值各不相同,有时包含小时数,这对我不起作用。

所以我的问题是:如何将从 excel 读取的时间值添加到日期时间值?

最佳答案

您应该将用于构建 slack_time 的浮点值设为持续时间,即 datetime.timedelta目的。然后可以将它添加到 datetime 对象中:

>>> x = 0.010416666666666666
>>> timedelta(days=x)
datetime.timedelta(0, 900)
>>> 900/60
15 # the fifteen minutes you had earlier

所以你的代码变成:

from datetime import datetime, timedelta

new_arr_time = arr_time + timedelta(days=float(sh.cell_value(1,5)))

关于python - 如何在 Python 中将时间值添加到日期时间值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45026394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com