我创建了一个将日期格式化为“dd-MMM-yyyy”的方法,即:
public String formatDate(String day, String month, String year) {
// Do something with the date chosen by the user
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_MONTH, Integer.valueOf(day));
c.set(Calendar.MONTH, Integer.valueOf(month));
c.set(Calendar.YEAR, Integer.valueOf(year));
return df.format(c.getTime());
}
我将此方法称为formatDate("12","10","2014")
并获取结果12-Oct-2015
。我无法理解为什么它会让我回到 2015 而不是 2014 < /strong>。请帮忙
答案 0 :(得分:2)
可能是因为Calendar
中的月份从0开始,从1开始。尝试传递11
或更好Calendar.DECEMBER
12月。您可以找到here文档
答案 1 :(得分:1)
我现在尝试了,formatDate("12", "10", "2014")
的返回值为12-Nov-2014
,
因为MONTH
以0开头。
只需使用c.set(Calendar.MONTH, Integer.valueOf(month-1));
即可。