Parsing a date with short month without dot

后端 未结 6 1719
情书的邮戳
情书的邮戳 2020-12-10 02:19

I have a String that represents a date in French locale : 09-oct-08 :

I need to parse that String so I came up with this SimpleDa

6条回答
  •  自闭症患者
    2020-12-10 02:32

    This seems to work:

        DateFormatSymbols dfsFr = new DateFormatSymbols(Locale.FRENCH);
        String[] oldMonths = dfsFr.getShortMonths();
        String[] newMonths = new String[oldMonths.length];
        for (int i = 0, len = oldMonths.length; i < len; ++ i) {
            String oldMonth = oldMonths[i];
    
            if (oldMonth.endsWith(".")) {
                newMonths[i] = oldMonth.substring(0, oldMonths[i].length() - 1);
            } else {
                newMonths[i] = oldMonth;
            }
        }
        dfsFr.setShortMonths(newMonths);
        DateFormat dfFr = new SimpleDateFormat(
            "dd-MMM-yy", dfsFr);
    
        // English date parser for creating some test data.
        DateFormat dfEn = new SimpleDateFormat(
            "dd-MMM-yy", Locale.ENGLISH);
        System.out.println(dfFr.format(dfEn.parse("10-Oct-09")));
        System.out.println(dfFr.format(dfEn.parse("10-May-09")));
        System.out.println(dfFr.format(dfEn.parse("10-Feb-09")));
    

    Edit: Looks like St. Shadow beat me to it.

提交回复
热议问题