można użyć modułu datetime
do analizowania dat:
import datetime
print datetime.datetime.strptime('2010-08-27', '%Y-%m-%d')
print datetime.datetime.strptime('2010-15-27', '%Y-%m-%d')
wyjściowa:
2010-08-27 00:00:00
Traceback (most recent call last):
File "./x.py", line 6, in <module>
print datetime.datetime.strptime('2010-15-27', '%Y-%m-%d')
File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data '2010-15-27' does not match format '%Y-%m-%d'
Więc wzrok ValueError
powie, jeżeli data meczu:
def valid_date(datestring):
try:
datetime.datetime.strptime(datestring, '%Y-%m-%d')
return True
except ValueError:
return False
celu umożliwienia różnych formatach może albo test dla wszystkich możliwości lub użyj re
do analizowania z pól pierwszy:
import datetime
import re
def valid_date(datestring):
try:
mat=re.match('(\d{2})[/.-](\d{2})[/.-](\d{4})$', datestring)
if mat is not None:
datetime.datetime(*(map(int, mat.groups()[-1::-1])))
return True
except ValueError:
pass
return False
To jest dość proste. Czy próbowałeś samemu czegoś? –
Czy chcesz tylko sprawdzić format lub przekonwertować go? Jeśli chcesz również konwersji, spójrz na "time.strptime" - który nie potrzebuje żadnego wyrażenia regularnego. –