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