我在Python中从string到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 :(得分: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
答案 1 :(得分:0)
如果这些是整数,则可以使用“int”转换为整数。例如:
hour_den=int(obj.time_in[12:13])
答案 2 :(得分:0)
gl = int(hour_di) - int(hour_den)
pl = int(min_dl) - int(min_den)
答案 3 :(得分:0)
从datetime使用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