2011-12-13 5 views
2

У меня есть некоторые проблемы с форматом из строки в целое в Python:формат от строки до целого?

obj=self.browse(cr,uid,ids,context=context)[0] 
hour_den=obj.time_in[12:13] 
hour_di=obj.time_out[12:13] 
min_den=obj.time_in[15:16] 
min_di=obj.time_out[15:16] 
gl=hour_di-hour_den 
pl=min_di-min_den 

и ошибка:

unsupported operand type(s) for -: 'unicode' and 'unicode' 

как я могу отформатировать его ?? Помогите мне, пожалуйста! Спасибо !!!

ответ

0

Использование strptime из DateTime:

from datetime import datetime 
hour_den = '12:13' 
hour_di = '12:15' 
FMT = '%H:%M' 
timedelta = datetime.strptime(hour_di, FMT) - datetime.strptime(hour_den, FMT) 
print timedelta 
0

Если это целые числа, вы можете использовать «int» для преобразования в целое число. Например:

hour_den=int(obj.time_in[12:13]) 
+0

я был преуспеваю ... спасибо всех –

0
gl = int(hour_di) - int(hour_den) 
pl = int(min_dl) - int(min_den) 
1

Не ясно, какой тип OBJ есть. Однако вы могли бы это сделать.

obj=self.browse(cr,uid,ids,context=context)[0] 
hour_den = hour_di = min_den = min_di = 0 
try: 
    hour_den=int(obj.time_in[12:13]) 
    hour_di=int(obj.time_out[12:13]) 
    min_den=int(obj.time_in[15:16]) 
    min_di=int(obj.time_out[15:16]) 
except ValueError: 
    return False 
gl=hour_di-hour_den 
pl=min_di-min_den 

Но лучше делать отливки в целом в функции раздельного

Я подозреваю, что индексы неверны. Если вам нужно вручную разобрать дату в фиксированном формате, например «2011-12-14 02:20:11». Вы можете использовать следующие:

ts = "2011-12-14 02:20:11" 
date, time = ts.split() 
hours, mins, secs = time.split(':') 
try: 
    hours=int(hours) 
    mins=int(mins) 
    secs=int(secs) 
except ValueError: 
    return False 
+0

ошибка снова ValueError: недопустимое буквальное для Int() с основанием 10: «» я делать час по найденной цене и MINUES с obj.time_in is "2011-12-14 02:20:11", и я хочу сократить мин и час его и конвертировать в int. для некоторых вычислений –

+0

В этом ответе есть одна вещь, о которой мне говорили, это способ «Python» делать вещи. Это использование try, кроме. Мне даже объяснили, что я должен искать нечетные числа в наших данных учетной записи воды, присваивая значение числового столбца # столбцу целому числу в try .. except block вместо использования оператора if. – octopusgrabbus

Смежные вопросы