日历类Calendar获取每月的开始和结束时间:
最近有个做统计报表的需求,需要做日度,月度相关的数据统计,因此需要将时间段进行划分,获取每个小区间的开始结束时间;以下为测试代码(以获取每月的区间为例),代码如下:
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
final List<String> stringList = Arrays.asList("2022-01", "2022-02");
for (String s : stringList) {
try {
final Date parse = sdf.parse(s);
System.out.println("开始时间:" + sdf1.format(parse));
final Calendar cal = Calendar.getInstance();
cal.setTime(parse);
final int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, last);
cal.add(Calendar.DATE, +1);
cal.add(Calendar.SECOND, -1);
System.out.println("结束时间:" + sdf1.format(cal.getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
}
}
测试结果如下:
以上就是根据Calendar提供的一些工具方法实现获取每月的开始和结束时间,有需要的朋友可以按照自己的需求提取工具类使用,当然hutool有更多简单的api,根据自己的喜好自行选择.