日期格式在android中不起作用?

时间:2014-12-03 10:45:30

标签: android simpledateformat android-date

我创建了一个将日期格式化为“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>。请帮忙

2 个答案:

答案 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));即可。