Normalize different date data in one format in Python

I am currently parsing a date containing so many different types of dates, e.g.

12/31/1991
December 10, 1980
September 25, 1970
2005-11-14
December 1990
October 12, 2005
1993-06-26

Is there a way to normalize all date data in one format "YYYY-MM-DD"? I am familiar with the datetime package in Python, but what is the best way to approach this problem so that it can handle all different types of dates.

+4
source share
2 answers

, dateutil library ( , ​​ Python 3 +), dateutil.parser.parse, datetime, datetime.datetime.strftime(), - 'YYYY-MM-DD'. -

>>> s = """12/31/1991
... December 10, 1980
... September 25, 1970
... 2005-11-14
... December 1990
... October 12, 2005
... 1993-06-26"""

>>> from dateutil import parser
>>> for i in s.splitlines():
...     d = parser.parse(i)
...     print(d.strftime("%Y-%m-%d"))
...
1991-12-31
1980-12-10
1970-09-25
2005-11-14
1990-12-10
2005-10-12
1993-06-26

, dateutil.parser.parse -, datetime, ( 'December 1990'), - 1990-12-10, 10 - ).

+2

:

from  dateutil.parser import parse
dt = parse(str(row))
print(dt.strftime('%Y-%m-%d'))

.

0

Source: https://habr.com/ru/post/1611061/


All Articles