如何获取上一个月的今天

在Java中,我们可以通过Calendar类和SimpleDateFormat类来获取上一个月的今天日期。以下是具体步骤和代码示例:

步骤一:获取当前日期的Calendar对象

首先,我们需要获取当前日期的Calendar对象。可以通过以下代码实现:

import java.util.Calendar;

Calendar today = Calendar.getInstance();

步骤二:设置日期为上一个月的今天

接下来,我们需要将当前日期的Calendar对象的月份减一来获取上一个月的今天日期。但是需要考虑到一些特殊情况,比如当前月份是1月的情况,需要将年份也相应减一。以下是代码示例:

int currentMonth = today.get(Calendar.MONTH);
if (currentMonth == Calendar.JANUARY) {
    today.add(Calendar.YEAR, -1);
    today.set(Calendar.MONTH, Calendar.DECEMBER);
} else {
    today.add(Calendar.MONTH, -1);
}

步骤三:格式化日期输出

最后,我们可以使用SimpleDateFormat类将Calendar对象格式化为我们想要的日期字符串。以下是代码示例:

import java.text.SimpleDateFormat;

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String lastMonthToday = sdf.format(today.getTime());

System.out.println("上一个月的今天是:" + lastMonthToday);

完整代码示例

import java.util.Calendar;
import java.text.SimpleDateFormat;

public class LastMonthToday {
    public static void main(String[] args) {
        Calendar today = Calendar.getInstance();

        int currentMonth = today.get(Calendar.MONTH);
        if (currentMonth == Calendar.JANUARY) {
            today.add(Calendar.YEAR, -1);
            today.set(Calendar.MONTH, Calendar.DECEMBER);
        } else {
            today.add(Calendar.MONTH, -1);
        }

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String lastMonthToday = sdf.format(today.getTime());

        System.out.println("上一个月的今天是:" + lastMonthToday);
    }
}

类图

classDiagram
    LastMonthToday {
        + main(String[] args)
    }

甘特图

gantt
    dateFormat YYYY-MM-DD
    title 获取上一个月的今天日期
    section 获取当前日期
    获取当前日期 : done, 2022-12-01, 1d
    section 设置为上一个月的日期
    设置为上一个月的日期 : done, 2022-12-01, 1d
    section 格式化输出
    格式化输出 : done, 2022-12-01, 1d

通过以上步骤和代码示例,我们可以轻松地获取上一个月的今天日期。希望对你有帮助!