将字符串日期更改为另一个字符串日期

时间:2013-01-13 21:05:21

标签: java string date

我有String这样的人:2013-04-19,我想将其更改为:April 19th 2013。我知道Java中有一些类SimpleDateFormat,但我不知道应该使用哪种函数。也许我需要选择班级Pattern?我需要一些帮助。

3 个答案:

答案 0 :(得分:2)

请尝试以下操作,这样可以在几天内为您提供正确的“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

答案 1 :(得分:1)

试试这个:

String originalDate = "2013-04-19";
Date date = null;
try {
    date = new SimpleDateFormat("yyyy-MM-dd").parse(originalDate);
} catch (Exception e) {
}
String formattedDate = new SimpleDateFormat("MMMM dd yyyy").format(date);

不会打印st,nd,rd等

答案 2 :(得分:1)

只需使用SimpleDateFormat类中的parse方法 试试这个:

new SimpleDateFormat("MMM dd YYYY").parse("2013-04-19");