获得当前的时间的年月周的起止时间

本文介绍了一个Java方法,该方法可以根据当前年份、月份或周来获取相应的时间段起止时间。通过使用Calendar和SimpleDateFormat等类,实现了灵活地获取指定年份的第一天和最后一天、指定月份的开始和结束日期以及当前周的周一和周日的具体时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public static Map<String,String> getStartAndEndTime(String val){
    Map<String,String> timeMap = new HashMap<>();
    //获取当前时间
    Date  now = DateUtil.getNow();
    Calendar cal = Calendar.getInstance();
    cal.setTime(now);
    int year = cal.get(cal.YEAR);
    int month = cal.get(cal.MONTH);
    SimpleDateFormat sdf = new SimpleDateFormat(DateUtil.DATETIME);
    String startTime = "";
    String endTime = "";
    if(DateUtil.NOW_YEAR.equals(val)){
        cal.clear();
        cal.set(year,cal.JANUARY,1,0,0,0);
        startTime = sdf.format(cal.getTime());
        cal.clear();
        cal.set(year,cal.DECEMBER,31,23,59,59);
        endTime = sdf.format(cal.getTime());

    }
    if(DateUtil.NOW_MONTH.equals(val)){
        cal.clear();
        cal.set(year,month,1,0,0,0);
        startTime = sdf.format(cal.getTime());
        cal.clear();
        cal.set(year,month+1,0);
        int endDate =cal.get(cal.DAY_OF_MONTH);
        cal.set(year,month,endDate,23,59,59);
        endTime = sdf.format(cal.getTime());
    }

    if(DateUtil.NOW_WEEK.equals(val)){
        cal.set(cal.DAY_OF_WEEK, cal.MONDAY);
        cal.set(cal.HOUR_OF_DAY, 0);
        cal.set(cal.MINUTE, 0);
        cal.set(cal.SECOND, 0);
        startTime = sdf.format(cal.getTime());
        cal.set(cal.DATE,cal.get(cal.DATE) + 6);
        cal.set(cal.HOUR_OF_DAY, 23);
        cal.set(cal.MINUTE, 59);
        cal.set(cal.SECOND, 59);
        endTime = sdf.format(cal.getTime());
    }
    timeMap.put(DateUtil.START_TIME,startTime);
    timeMap.put(DateUtil.END_TIME,endTime);

    return timeMap;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值