从当前日期时间获得1个月前

时间:2014-01-02 06:48:40

标签: android calendar

我试图获得1个月前的日期和时间,但我得到的是2013年11 02,正确的应该是2013 12 02 pls help。

我的代码如下: -

Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.MONTH, -1);

    int thisYear = calendar.get(Calendar.YEAR);
    int thisMonth = calendar.get(Calendar.MONTH);
    int thisDay = calendar.get(Calendar.DAY_OF_MONTH);

2 个答案:

答案 0 :(得分:7)

您的代码是正确的,我认为月份是零索引;)

试试这个,

Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -1);
Date date = calendar.getTime();
SimpleDateFormat format = new SimpleDateFormat("yyyy MM dd");
String dateOutput = format.format(date);

这应该以逻辑单位而不是内部表示法来解释你的日期值

查看SimpleDateFormat的文档以获得更加自定义的方法,我只根据您的问题文本做了一些假设。

答案 1 :(得分:3)

你可以试试这个

    Calendar calendar = Calendar.getInstance();
    if(calendar.get(Calendar.MONTH) == Calendar.JANUARY){
        calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR)-1);
        calendar.set(Calendar.MONTH, calendar.DECEMBER);
    }else{
        calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH)-1);
    }

    int thisYear = calendar.get(Calendar.YEAR);
    int thisMonth = calendar.get(Calendar.MONTH);
    int thisDay = calendar.get(Calendar.DAY_OF_MONTH);