有的时候需要获取当前时间所在自然周中的起始和截止时间,或者某个时间段内里的每一天的日期 1、先来解决获取自然周中的起止时间
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/** * 获取当前时间所在自然周的起止日期 * * @return */ public static Map<String, String> weekBeginningAndEnding() { Map<String, String> map = new HashMap<>(); //获取当前自然周中每天的日期集合 Date date = new Date(); DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = new GregorianCalendar(); c.setFirstDayOfWeek(Calendar.MONDAY); //这里设置一周开始时间是星期一 c.setTime(date); c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // Monday String beginTime = format.format(c.getTime()); //获取当前自然周的起始时间 map.put("begin", beginTime); c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday String endTime = format.format(c.getTime()); //当前自然周的截止时间 map.put("end", endTime); return map; } |
2、根据时间段来获取当前时间段内的每一天
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
/** * 获取开始和结束之间的每一天 * * @param beginTime 开始时间 * @param endTime 结束时间 * @param type 返回列表中的时间格式 * @return 返回日期字符串列表 */ public static List<String> weekDays(Date beginTime, Date endTime,String type) { DateFormat format=new SimpleDateFormat(type); //设置开始时间 Calendar calStart = Calendar.getInstance(); calStart.setTime(beginTime); //设置结束时间 Calendar calEnd = Calendar.getInstance(); calEnd.setTime(endTime); //返回的日期集合 List<String> dateList = new ArrayList<String>(); //每次循环给calStart日期加一天,直到calBegin.getTime()时间等于dEnd dateList.add(format.format(calStart.getTime())); while (endTime.after(calStart.getTime())) { //根据日历的规则,为给定的日历字段添加或减去指定的时间量 calStart.add(Calendar.DAY_OF_MONTH, 1); dateList.add(format.format(calStart.getTime())); } return dateList; } |
如果对你有用,点个赞吧!!! from:https://blog.csdn.net/weixin_44826433/article/details/110677362
View Details第一种方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/** * 获取当前日期是星期几<br> * * @param date * @return 当前日期是星期几 */ public String getWeekOfDate(Date date) { String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; Calendar cal = Calendar.getInstance(); cal.setTime(date); int w = cal.get(Calendar.DAY_OF_WEEK) - 1; if (w < 0) w = 0; return weekDays[w]; } |
第二种方法: 使用SimpleDateFormat格式化日期
1 2 3 4 |
Date date = new Date(); SimpleDateFormat dateFm = new SimpleDateFormat("EEEE"); String currSun = dateFm.format(date); System.out.println(currSun); |
注:格式化字符串存在区分大小写 对于创建SimpleDateFormat传入的参数:EEEE代表星期,如“星期四”;MMMM代表中文月份,如“七月”;MM代表月份,如“07”;yyyy代表年份,如“2017”;dd代表天,如“05” from:https://blog.csdn.net/u013456370/article/details/74373410
View Details