How can I parse a string like "01-Jan-1995" to a Python datetime
object?
Asked
Active
Viewed 2.2k times
16

davidism
- 121,510
- 29
- 395
- 339

Charlie Epps
- 3,595
- 9
- 33
- 38
3 Answers
24
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.

EricP
- 3,395
- 3
- 33
- 46

Tuure Laurinolli
- 4,016
- 1
- 22
- 21
10
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()

Soviut
- 88,194
- 49
- 192
- 260
-
2+1 for python-dateutil. It can even parse datestrings without you having to tell it the format. – unutbu Nov 11 '09 at 18:44
1
If you need to parse natural language date and time strings, consider parsedatetime (and this answer).

Community
- 1
- 1

Adam Matan
- 128,757
- 147
- 397
- 562