java中怎么获取本周和上周的所有日期
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,java中怎么获取本周和上周的所有日期,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。/** * 根据当前日期获得所在周的日期区
千家信息网最后更新 2026年11月01日java中怎么获取本周和上周的所有日期
java中怎么获取本周和上周的所有日期,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
/** * 根据当前日期获得所在周的日期区间(周一和周日日期) */ public static MapgetTimeInterval(Date date){ Map map = new HashMap<>(); Calendar cal = Calendar.getInstance(); cal.setTime(date); // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了 int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天 if(1 == dayWeek){ cal.add(Calendar.DAY_OF_MONTH,-1); } // 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一 cal.setFirstDayOfWeek(Calendar.MONDAY); // 获得当前日期是一个星期的第几天 int day = cal.get(Calendar.DAY_OF_WEEK); // 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值 cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day); Long imptimeBegin = cal.getTime().getTime(); cal.add(Calendar.DATE,6); Long imptimeEnd = cal.getTime().getTime(); map.put("start", imptimeBegin); map.put("end", imptimeEnd); return map; } /** * 根据当前日期获得上周的日期区间(上周周一和周日日期) */ public static Map getLastTimeInterval(Date date){ Map map = new HashMap<>(); Calendar calendar1 = Calendar.getInstance(); Calendar calendar2 = Calendar.getInstance(); calendar1.setTime(date); calendar2.setTime(date); int dayOfWeek = calendar1.get(Calendar.DAY_OF_WEEK) - 1; if(dayOfWeek <= 0){ dayOfWeek = 7; } int offset1 = 1 - dayOfWeek; int offset2 = 7 - dayOfWeek; calendar1.add(Calendar.DATE, offset1 - 7); calendar2.add(Calendar.DATE, offset2 - 7); // last Monday Long lastBeginDate = calendar1.getTime().getTime(); // last Sunday Long lastEndDate = calendar2.getTime().getTime(); map.put("laststart", lastBeginDate); map.put("lastend", lastEndDate); return map; } /** * 获取本周开始时间 * @return */ public static Long getWeekStart(){ Map map = getTimeInterval(new Date()); return map.get("start"); } /** * 获取本周结束时间 * @return */ public static Long getWeekEnd(){ Map map = getTimeInterval(new Date()); return map.get("end"); } /** * 获取上周开始时间 * @return */ public static Long getLastWeekStart(){ Map map = getLastTimeInterval(new Date()); return map.get("laststart"); } /** * 获取上周结束时间 * @return */ public static Long getLastWeekEnd(){ Map map = getLastTimeInterval(new Date()); return map.get("lastend"); }/** * 获取时间范围里面时间戳 * @param dBegin * @param dEnd * @return */ public static List listTimeStamp(Long dBegin, Long dEnd) { List lDate = new ArrayList(); lDate.add(dBegin); Calendar calBegin = Calendar.getInstance(); // 使用给定的 Date 设置此 Calendar 的时间 calBegin.setTime(new Date(dBegin)); Calendar calEnd = Calendar.getInstance(); // 使用给定的 Date 设置此 Calendar 的时间 calEnd.setTime(new Date(dEnd)); // 测试此日期是否在指定日期之后 while (dEnd > calBegin.getTime().getTime()) { // 根据日历的规则,为给定的日历字段添加或减去指定的时间量 calBegin.add(Calendar.DAY_OF_MONTH, 1); lDate.add(calBegin.getTime().getTime()); } return lDate; } public static void main(String[] args){ Long t = SalesTimeUtil.dateToStamp("20191028", "yyyyMMdd"); // 本周时间范围 System.out.println(getTimeInterval(new Date(t))); // 上周时间范围 System.out.println(getLastTimeInterval(new Date(t))); System.out.println(formatYyyyMMdd(getWeekStart())); System.out.println(formatYyyyMMdd(getWeekEnd())); System.out.println(formatYyyyMMdd(getLastWeekStart())); System.out.println(formatYyyyMMdd(getLastWeekEnd())); }
{start=1572192000000, end=1572710400000}{lastend=1572105600000, laststart=1571587200000}本周:20191028,20191103上周:20191021,201910271572234212622:201910281572320612622:201910291572407012622:201910301572493412622:201910311572579812622:201911011572666212622:201911021572752612622:20191103看完上述内容,你们掌握java中怎么获取本周和上周的所有日期的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
日期
时间
星期
日历
范围
问题
内容
区间
方法
更多
规则
束手无策
为此
原因
字段
对此
差值
所在
技能
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技工作委员会毛军
广州百单互联网科技有限公司
善班互联网科技
世界互联网领先科技成果
长亮科技互联网金融
甘肃拓世互联网科技有限公司
农村开互联网科技讲堂
崇明区互联网教育科技诚信经营
天津腾达互联网科技有限公司
华夏恒生互联网科技013171
互联网科技创新的路径
玉溪新华互联网科技好不好
互联网硬科技公司
版纳互联网科技选哪家
互联网科技收购价值
易租星互联网科技有限公司
福仕德教育科技互联网
互联网时代高科技布局
黑龙江互联网科技公司
恒生互联网科技趋势
南京欣网互联网络科技有限公司
互联网科技产业
上海挚品互联网科技
互联网金融和金融科技
互联网之后的科技是什么
互联网科技寓意
贵州叶脉互联网科技有限公司所属行业
山东子淼互联网科技有限公司
数字科技和互联网金融哪个好
互联网 科技节活动 微视频大赛