我想将日期转换成其他格式。

例如,

字符串fromDate =“ 2011-04-22”;
我想将此fromDate转换为“ 2011年4月22日”

我怎样才能做到这一点?

提前致谢

最佳答案

由于22中的“ nd”,您想要的是一个小技巧。根据一天的不同,它需要一个不同的后缀。 SimpleDateFormat不支持这种格式。您必须编写一些其他代码才能获得它。这是一个示例,但是仅限于在某些地区(例如美国)工作:

SimpleDateFormat fromFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat toFormat = new SimpleDateFormat("d'__' MMM, yyyy");

String fromDate = "2011-04-22";
Date date = fromFormat.parse(fromDate);
String toDate = toFormat.format(date);

Calendar cal = Calendar.getInstance();
cal.setTime(date);
int day = cal.get(Calendar.DAY_OF_MONTH);
if (day % 10 == 1 && day != 11) {
    toDate = toDate.replaceAll("__", "st");
} else if (day % 10 == 2 && day != 12) {
    toDate = toDate.replaceAll("__", "nd");
} else if (day % 10 == 3 && day != 13) {
    toDate = toDate.replaceAll("__", "rd");
} else {
    toDate = toDate.replaceAll("__", "th");
}

System.out.println(toDate);

关于java - Java中的日期格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5828474/

10-13 07:26