欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

某年的月初月末时间戳获取

程序员文章站 2022-05-15 09:50:39
...
package co.yixiang.modules.jhb.common;

import java.util.Calendar;
import java.util.Date;

/**
 * @author lwy
 * @since 2021年7月17日15:45:35
 */
public class SelectDateOfMonthUtil {

    /**
     * 获取某个月的月初时间和月末时间的时间戳 秒级,用于月份时间筛选
     * @param year 年份
     * @param month 月份
     * @param unitOfTime 时间单位(1为ms,1000为s,1000*60为分,以此类推)
     * @return times times[0] 月初时间   times[1]月末时间
     */
    public static long[] selectDateOfMonth(int year,int month,int unitOfTime){
        long[] times = new long[2];
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, year);

        //当前月的第一天的00:00:00
        cal.set(Calendar.MONTH, month-1);
        cal.set(Calendar.DAY_OF_MONTH,cal.getMinimum(Calendar.DATE));
        System.out.println(cal.getTime());
        Date time1 = cal.getTime();
        time1.setHours(0);
        time1.setSeconds(0);
        time1.setMinutes(0);
        long timeInMillis1 = time1.getTime();
        times[0] = timeInMillis1/unitOfTime;

        //下个月的第一天的00:00:00
        cal.set(Calendar.MONTH, month);
        cal.set(Calendar.DAY_OF_MONTH,cal.getMinimum(Calendar.DATE));
        System.out.println(cal.getTime());
        Date time2 = cal.getTime();
        time2.setHours(0);
        time2.setSeconds(0);
        time2.setMinutes(0);
        long timeInMillis2 = time2.getTime();
        times[1] = timeInMillis2/1000;

        return times;
    }

}