Языки программирования (такие как java
, C#
, python
и т. Д.) Имеют тип date/time/datetime
.
date
может быть создан с помощью конструктора, если вы предоставите действительные аргументы.
Если нет, это будет продукт exception
, который может быть захвачен (обычно try...catch
оператор).
Трудно проверить 29/2/2012
и 29/2/2013
, используя regex
.
Но это легко с помощью date
тип языка.
$ python
>>> import time
>>> time.strptime('29/2/2012', '%d/%m/%Y')
time.struct_time(tm_year=2012, tm_mon=2, tm_mday=29, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=60, tm_isdst=-1)
>>> time.strptime('29/2/2013', '%d/%m/%Y')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.2/_strptime.py", line 482, in _strptime_time
tt = _strptime(data_string, format)[0]
File "/usr/lib/python3.2/_strptime.py", line 459, in _strptime
datetime_date(year, 1, 1).toordinal() + 1
ValueError: day is out of range for month