如何从python datetime.time字段中获取小时整数

如何从python datetime.time字段中获取小时整数,python,django,datetime,Python,Django,Datetime,我有一个datetime.time字段,它等于3:00 如何从该对象中获取3作为整数 我试过: transaction_time = form.cleaned_data['transaction_time'] print transaction_time.hour 我得到一个错误: “unicode”对象没有属性“hour” 似乎事务时间是unicode类型的。您可以使用字符串操作获取hour parttransaction\u time[0]或将其键入datetime并获取hour。根据文档

我有一个datetime.time字段,它等于3:00

如何从该对象中获取3作为整数

我试过:

transaction_time = form.cleaned_data['transaction_time']
print transaction_time.hour
我得到一个错误:

“unicode”对象没有属性“hour”


似乎事务时间是unicode类型的。您可以使用字符串操作获取hour parttransaction\u time[0]或将其键入datetime并获取hour。

根据文档:

如果某个字段的required=False,并且您传递了一个空值, 然后clean将返回一个规范化的空值,而不是提升 验证错误。对于CharField,这将是一个Unicode空字符串。 对于其他字段类,可能没有。这因场地而异 场

正如Arun提到的,我通过字符串操作来确定时间:

def set_hour_for_date(customer, hour_str, transaction_date):
    meridian = hour_str[-2:]
    hour = int(hour_str[:2])
    if meridian == 'PM':
        hour = hour + 12
    relative_time = customer.time_zone.localize(datetime(
                                                        transaction_date.year, 
                                                        transaction_date.month, 
                                                        transaction_date.day, 
                                                        hour, 
                                                        0, 
                                                        0, 
                                                        294757))

    return relative_time

transaction_time不是时间对象,它是unicode,因此首先使用strTime将其转换为结构时间,然后获取字段tm_hour

from time import strptime
t = strptime(form.cleaned_data['transaction_time'], '%H:%M')

print t.tm_hour
你有没有试着先找个约会时间?