java中怎么获取本周和上周的所有日期
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,java中怎么获取本周和上周的所有日期,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。/** * 根据当前日期获得所在周的日期区
千家信息网最后更新 2025年12月03日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安全错误
数据库的锁怎样保障安全
网络技术交流的网站
有关网络安全的工具
东华软件开发岗位工资待遇
数支互联网科技
常用的网络安全技术有什么
负责整个服务器的运算和控制
软件开发中测试的步骤的步骤
同时用两个条件匹配数据库
昆明 网络技术公司地址
湖州网络技术创新服务
无限单方块生存手机版服务器
广域网加速属于网络安全吗
周村文件审批软件开发
怎么通过服务器地址查询是否欠费
网络安全突发事件危害
为什么数据库管理员收入高
软件开发多少钱一个月6
眼镜软件开发的原因
typeint 数据库
辽宁app软件开发
嵌入式软件开发和外包
c# 做数据库处理
网络安全保障条例
网络安全领域的领头羊
黑客学的是不是网络安全技术
网络安全宣传周2020日程
为什么数据库管理员收入高
打印服务器引起网络瘫痪
工信部颁发软件开发证书
软件开发文档包含哪档