格式从字符串到整数?

时间:2011-12-13 19:13:55

标签: python

我在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'

我怎么格式化? 请帮帮我! 感谢!!!

4 个答案:

答案 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