Bạn có thể sử dụng các mô-đun datetime
để phân tích ngày:
import datetime
print datetime.datetime.strptime('2010-08-27', '%Y-%m-%d')
print datetime.datetime.strptime('2010-15-27', '%Y-%m-%d')
đầu ra:
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'
Vì vậy, bắt ValueError
sẽ cho bạn biết nếu các trận đấu ngày:
def valid_date(datestring):
try:
datetime.datetime.strptime(datestring, '%Y-%m-%d')
return True
except ValueError:
return False
Để cho phép cho các định dạng khác nhau mà bạn có thể một trong hai bài kiểm tra đối với tất cả khả năng, hoặc sử dụng re
để phân tích ra các lĩnh vực đầu tiên:
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
Điều này khá cơ bản. Bạn đã thử bất cứ điều gì một mình? –
Bạn chỉ muốn kiểm tra định dạng hoặc chuyển đổi nó? Nếu bạn cũng muốn chuyển đổi, vui lòng xem 'time.strptime' - không cần bất kỳ cụm từ thông dụng nào. –