Parse a string with a date to a datetime object [duplicate]

How can I parse a string like "01-Jan-1995" to a Python datetime object?


Solution 1:

On the whole you'd parse date and time strings with the strptime functions in time or datetime modules. Your example could be parsed with:

import datetime
datetime.datetime.strptime("01-Jan-1995", "%d-%b-%Y")

Note that parsing month names is locale-dependent. This table shows the directives for parsing various formats of dates and times.

Solution 2:

dateutil can parse this sort of format without you even having to define custom date formats. Just install it with:

pip install python-dateutil

Then use it:

import dateutil.parser
dateutil.parser.parse('01-Jan-1995').date()

Solution 3:

If you need to parse natural language date and time strings, consider parsedatetime (and this answer).