我試圖驗證應該包含格式爲ISO 8601(在JSON中常用)的時間戳的字符串。如何在Python中進行驗證時要求將時間戳填充爲零?
Python的strptime
似乎是非常寬容的,當涉及到確認零填充,請參見下面的代碼示例(請注意,小時缺少前導零):
>>> import datetime
>>> s = '1985-08-23T3:00:00.000'
>>> datetime.datetime.strptime(s, '%Y-%m-%dT%H:%M:%S.%f')
datetime.datetime(1985, 8, 23, 3, 0)
它優雅地接受一個字符串,這不是例如,零小時填充,並且不會像我所期望的那樣拋出異常ValueError
。
有沒有什麼辦法強制strptime驗證它是零填充的?或者在Python的標準庫中是否還有其他內置函數呢?
我想避免寫我自己regexp
爲此。
您可以手動驗證字符串:檢查'.'是否處於正確的位置('str [19] =='。'):如果不是,則存在零填充問題。 – TemporalWolf
也許不是這個具體的問題,但是在ISO上討論過與ISO8601有關的其他問題。一個問題提到https://pypi.python.org/pypi/iso8601,然後提到http://labix.org/python-dateutil。 –