在我的應用程序中,我將時間輸入以字符串格式輸入到變量中,例如Values = '12,12,12'
。Pythonic驗證時間輸入的方法(僅用於Hr,Min,Sec)
現在我需要驗證它h<24 M<60 S<60
等,我希望在'%H:%M:%S'
格式的最終輸出。
爲了得到這個我試過datetime.time().
我第一次試圖與values = '12'
然後'12,12,12'
。
In [1]: import datetime
In [2]: values = '12'
In [3]: d = datetime.time(values)
TypeError Traceback (most recent call last)
/mypc/test/<ipython console> in <module>()
TypeError: an integer is required
In [4]: d = datetime.time(int(values))
In [5]: d
Out[5]: datetime.time(12, 0)
In [6]: d.strftime('%H:%M:%S')
Out[6]: '12:00:00'
In [7]: s = d.strftime('%H:%M:%S')
In [8]: s
Out[8]: '12:00:00'
In [9]: values = '12,12,12'
In [10]: d = datetime.time(int(values))
ValueError: invalid literal for int() with base 10: '12,12,12'
但它的工作原理如下。
In [24]: datetime.time(12,12,12).strftime('%H:%M:%S')
Out[24]: '12:12:12'
所以問題是,datetime.time()正在輸入作爲整數和'12,12,12'
字符串不能在INT被轉換。
是否有任何其他方式(而不是正則表達式)僅對Hr:M:S進行驗證。
你的意思是'M <60'和'S <60',對吧?這就是爲什麼你不應該用日期手動做任何事情的原因。它永遠不會出來 – Dave 2012-01-16 06:11:07
@Dave謝謝你糾正我。 – shashaDenovo 2012-01-16 06:14:32