datetime对象调用hour()报错'int' object is not callable,如何提取小时?
如何从datetime对象中正确提取小时?
错误原因
dt_obj.hour是datetime.datetime对象的属性而非方法,它本身就是一个整数类型的值,直接访问即可。你给它加了括号(),相当于试图把一个整数当成函数调用,这就触发了TypeError: 'int' object is not callable错误。
原代码
date_format = '%m/%d/%Y %H:%M' print(date_format) import datetime as dt for row in result_list: time = row[0] print(time) dt_obj = dt.datetime.strptime(time, date_format) print(type(dt_obj)) t_hour = dt_obj.hour() print(t_hour)
报错信息
%m/%d/%Y %H:%M 8/16/2016 9:55 <class 'datetime.datetime'> TypeError: 'int' object is not callable
修正后的代码
只需要去掉hour后面的括号:
date_format = '%m/%d/%Y %H:%M' print(date_format) import datetime as dt for row in result_list: time = row[0] print(time) dt_obj = dt.datetime.strptime(time, date_format) print(type(dt_obj)) t_hour = dt_obj.hour # 去掉括号,直接访问属性 print(t_hour)
运行后就能正确输出小时数(比如示例中的9)。
内容的提问来源于stack exchange,提问作者Lewis Foggie
相关产品推荐
相关产品推荐

