# LeetCode – Strings – Reformat Date

Given a `date` string in the form `Day Month Year`, where:

• `Day` is in the set `{"1st", "2nd", "3rd", "4th", ..., "30th", "31st"}`.
• `Month` is in the set `{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}`.
• `Year` is in the range `[1900, 2100]`.

Convert the date string to the format `YYYY-MM-DD`, where:

• `YYYY` denotes the 4 digit year.
• `MM` denotes the 2 digit month.
• `DD` denotes the 2 digit day.

Example 1:

```Input: date = "20th Oct 2052"
Output: "2052-10-20"
```

Example 2:

```Input: date = "6th Jun 1933"
Output: "1933-06-06"```
``class Solution {    public String reformatDate(String date) {        String result = "";        List<String> month_list = new ArrayList<String>();        month_list.add("Jan");        month_list.add("Feb");        month_list.add("Mar");        month_list.add("Apr");        month_list.add("May");        month_list.add("Jun");        month_list.add("Jul");        month_list.add("Aug");        month_list.add("Sep");        month_list.add("Oct");        month_list.add("Nov");        month_list.add("Dec");                List<String> data = new ArrayList<String>();        for(String token: date.split("\\s++")){            data.add(token);        }                for(int i=2;i>=0;i--){            if(i==2){                result = data.get(i)+"-";            }else if(i==1){                String month = String.format("%02d" , month_list.indexOf(data.get(i))+1);                result = result + month + "-";            }else{                int dte= Integer.parseInt(data.get(i).replaceAll("[^0-9]", ""));                String dte_str = String.format("%02d" , dte);                result = result + dte_str;            }        }        return result;    }}``