Reformat Date

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

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

 

Example 1:

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

Example 2:

Input: date = "6th Jun 1933"
Output: "1933-06-06"

Example 3:

Input: date = "26th May 1960"
Output: "1960-05-26"

 

Constraints:


Solution:

class Solution {
    public String reformatDate(String date) {
        Map<String, String> map = new HashMap();
        map.put("Jan", "01");
        map.put("Feb", "02");
        map.put("Mar", "03");
        map.put("Apr", "04");
        map.put("May", "05");
        map.put("Jun", "06");
        map.put("Jul", "07");
        map.put("Aug", "08");
        map.put("Sep", "09");
        map.put("Oct", "10");
        map.put("Nov", "11");
        map.put("Dec", "12");
        String[] arr = date.split(" ");
        StringBuilder sb = new StringBuilder();
        sb.append(arr[2]);
        sb.append("-");
        sb.append(map.get(arr[1]));
        sb.append("-");
        String day = arr[0].replaceAll("[\\D]", "");
        if (day.length() == 1) day = "0" + day;
        sb.append(day);
        return sb.toString();
    }
}