开发中需要通过一个时间戳获取本月的的一个时间戳范围,由此记录一下
import java.util.Calendar;
import java.util.Date;
/**
* @description: 毫秒数转换 本月份开始时间戳 本月份结束时间戳
* @author: DAIHAO
* @created: 2020/03/17 21:56
*/
public class DataTransitionDemo {
public static void main(String[] args) {
System.out.println(System.currentTimeMillis());
Date date = new Date(System.currentTimeMillis());
System.out.println(date);
System.out.println(getMonthBegin(date));
System.out.println(getMonthEnd(date));
}
/**
* 获取指定日期所在月份开始的时间戳
*
* @param date 指定日期
* @return
*/
public static Long getMonthBegin(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
//设置为1号,当前日期既为本月第一天
c.set(Calendar.DAY_OF_MONTH, 1);
//将小时至0
c.set(Calendar.HOUR_OF_DAY, 0);
//将分钟至0
c.set(Calendar.MINUTE, 0);
//将秒至0
c.set(Calendar.SECOND, 0);
//将毫秒至0
c.set(Calendar.MILLISECOND, 0);
// 获取本月第一天的时间戳
return c.getTimeInMillis();
}
/**
* 获取指定日期所在月份结束的时间戳
*
* @param date 指定日期
* @return
*/
public static Long getMonthEnd(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
//设置为当月最后一天
c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
//将小时至23
c.set(Calendar.HOUR_OF_DAY, 23);
//将分钟至59
c.set(Calendar.MINUTE, 59);
//将秒至59
c.set(Calendar.SECOND, 59);
//将毫秒至999
c.set(Calendar.MILLISECOND, 999);
// 获取本月最后一天的时间戳
return c.getTimeInMillis();
}
}
结果:
//1584454233358
//Tue Mar 17 22:10:33 CST 2020
//1582992000000
//1585670399999