Site icon DevOpsPal

LeetCode – Strings – 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"
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;
    }
}
Exit mobile version