2011-12-13 55 views
2

我有一些问题,从字符串格式的Python INT:格式从字符串到整数?

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

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

我出头了......谢谢大家 – 2011-12-13 19:39:41

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 

但最好做铸造在separete功能

为int我怀疑你的索引是不正确的。 如果您需要以“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:“” 我做ABOT小时和MINUES与obj.time_in是“2011-12-14 02:20:11”,我想剪切小时和它的小时,并转换为int。做一些计算 – 2011-12-13 19:27:42