
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Reformat Date in YYYY-MM-DD Format Using Python
Suppose we have a date string in the format "Day Month Year" format where day's are like [1st, 2nd, ..., 30th, 31st], months are in [Jan, Feb, ... Nov, Dec] format and year is a four-digit numeric value in range 1900 to 2100, we have to convert this date into "YYYY-MM-DD" format.
So, if the input is like date = "23rd Jan 2021", then the output will be 2021-01-23
To solve this, we will follow these steps −
Months:= ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
string:= split the date and form a list like [day, month, year] format
year := string[2]
day := string[0] by removing last two characters
-
if day is single digit number, then
concatenate "0" with day
month := convert string[1] to month using Month list
-
if month is single digit number, then
concatenate "0" with month
return (year, month, day) in "YYYY-MM-DD" format
Example (Python)
Let us see the following implementation to get better understanding −
def solve(date): Months=["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] string=date.split() year = string[2] day = string[0][:-2] if len(day)<2: day="0"+day month = str(Months.index(string[1])+1) if len(month)<2: month="0"+month return "{0}-{1}-{2}".format(year, month, day) date = "23rd Jan 2021" print(solve(date))
Input
"23rd Jan 2021"
Output
2021-01-23