我有一个String这样的: 2013-04-19,我想把它改成 : April 19th 2013。我知道Java中有一些类SimpleDateFormat,但我不知道我应该使用什么样的函数。也许我需要选择班级Pattern?我需要帮助。
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   回答