1

私はStringこのようなものを持っています: 2013-04-19、そしてそれを : に変更したいと思いますApril 19th 2013。Java に のようなクラスがあることはSimpleDateFormat知っていますが、どのような関数を使用すればよいかわかりません。多分私はクラスを選択する必要がありますPatternか?助けが必要です。

4

3 に答える 3

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

(この投稿から適応された終日)

于 2013-01-13T21:42:00.173 に答える
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 などは表示されません。

于 2013-01-13T21:30:27.093 に答える
1

SimpleDateFormat クラスの parse メソッドを使用するだけで、次のことを試してください。

new SimpleDateFormat("MMM dd YYYY").parse("2013-04-19");
于 2013-01-13T22:20:43.837 に答える