我有一个简单的问题(至少我认为是这样),我想在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
然而,当运行我的代码时,出现以下错误:“TypeError: unsupported operand type(s) for +: ‘datetime.datetime’ and ‘datetime.time’”。由此,我理解不能将时间值添加到日期时间值中。但是,当将slack_time转换为日期时间值并将其添加到arr_time中时,我得到了类似的错误(虽然减法可以)。我知道可以使用timedelta(minutes = 15),但由于来自Excel文件的值会变化,有时包含小时,所以这对我不起作用。
因此,我的问题是:如何将从Excel读取的时间值添加到日期时间值中?
slack_time
值是什么格式?天数吗? - Moses Koledoye