TrolliOlli TrolliOlli - 2 months ago 22
Python Question

Python format date of the form "Monday, January 1, 1991"

I'm creating a web scraper and I'm running into an issue where the date the website gives me is of the form "Monday, January 1, 1991"

What's the best way to format this into a "MM-DD-YYYY" format? Should I split on the comma, pull out the month and convert it to a number, and then put the numbers together? Or is there some quicker way to do this?


Use the datetime module, using strptime to parse to a datetime object, then strftime to format as you need it:

from datetime import datetime

date = datetime.strptime("Monday, January 1, 1991", "%A, %B %d, %Y")

which outputs:


For the record, any time you're considering rolling your own parser, the answer is almost always "Don't". Rolling your own parser is error-prone; if at all possible, look for an existing parser.