我有一个这样的String2013-04-19,我想将其更改为:April 19th 2013。我知道Java中有一些类,例如SimpleDateFormat,但我不知道应该使用哪种功能。也许我需要选择课程Pattern?我需要一些帮助。

最佳答案

请尝试以下操作,这些操作应该可以连续几天正确显示“ th”,“ st”,“ rd”和“ nd”。

public static String getDayOfMonthSuffix(final int n) {
        if (n >= 11 && n <= 13) {
            return "th";
        }
        switch (n % 10) {
            case 1:  return "st";
            case 2:  return "nd";
            case 3:  return "rd";
            default: return "th";
        }
    }

public static void main(String[] args) throws ParseException {
        Date d = new SimpleDateFormat("yyyy-MM-dd").parse("2013-04-19");

        int day = Integer.parseInt(new java.text.SimpleDateFormat("dd").format(d));
        SimpleDateFormat sdf = new SimpleDateFormat("MMMMM dd'" + getDayOfMonthSuffix(day) + "' yyyy");
        String s = sdf.format(d);

        System.out.println(s);
    }


哪个会打印April 19th 2013

(终止日期改编自this post

09-30 15:50
查看更多