8

I have dd-MMM-yyyy dates. How do i convert this to yyyyMMdd, in Python ?

For example i need to convert 20-Nov-2002 to 20021120

0

2 Answers 2

33

You can use datetime.datetime.strptime() to read the date in a specific format and then use .strftime() to write it back in your required format. Example -

>>> import datetime
>>> datetime.datetime.strptime('20-Nov-2002','%d-%b-%Y').strftime('%Y%m%d')
'20021120'

Formats -

%d - 2 digit date

%b - 3-letter month abbreviation

%Y - 4 digit year

%m - 2 digit month

More details about different supported formats can be found here.

Sign up to request clarification or add additional context in comments.

Comments

2

You can use re module to do that, like this:

import re                                                                   
text = '20-Nov-2002'.replace('Nov', '11')                                                        
print(re.sub(r'(\d+)-(\d+)-(\d+)', r'\3-\1-\2', text))  

output:

2002-20-11

But if you want convert the all month, not just Nov to 11.

you can use the datetime module like this:

import re, datetime           
month = datetime.datetime.strptime('Nov', '%b').strftime('%m')   

text = '20-{month}-2002'.format(month=month)
print(re.sub(r'(\d+)-(\d+)-(\d+)', r'\3-\1-\2', text))  

And the output is the same.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.