Java 日期时间方法

Java中获取上个月的第一天和最后一天可能用于某些统计数据操作。

package com.yxjc;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Test  {

    public static void main(String args[]) throws ParseException {
        //获取上个月的第一天
        System.out.println(Test.getLastMonthFirstDay("yyyy-MM-dd HH:mm:ss"));
        //获取上个月的最后一天
        System.out.println(Test.getLastMonthLastDay("yyyy-MM-dd HH:mm:ss"));
    }

    /**
     * 获取上个月的第一天
     * @return
     */
    public static String getLastMonthFirstDay(String format ){
        if(format == null || format.isEmpty()){
            format = "yyyyMMdd";
        }
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
        Calendar calendar = Calendar.getInstance();//获取当前日期
        calendar.add(Calendar.MONTH, -1);
        calendar.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
        String firstDay = simpleDateFormat.format(calendar.getTime());
        return firstDay;
    }


    /**
     * 获取上个月的最后一天
     * @return
     */
    public static String getLastMonthLastDay(String format){
        if(format == null || format.isEmpty()){
            format = "yyyyMMdd";
        }
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
        Calendar cale = Calendar.getInstance();
        cale.set(Calendar.DAY_OF_MONTH,0);//设置为1号,当前日期既为本月第一天
        String lastDay = simpleDateFormat.format(cale.getTime());
        return lastDay;
    }

} 

测试一下

输出

2022-12-01 15:48:32
2022-12-31 15:48:32

 如果只想要年月日,可以对空格进行分割,时分秒用00:00:00代替即可。