2011-12-13 76 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