1.获取当月时间范围
public static String getMonth(){ SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, 0); c.set(Calendar.DAY_OF_MONTH,1); String first = format.format(c.getTime()); Calendar ca = Calendar.getInstance(); ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); String last = format.format(ca.getTime()); return first+" and "+last; }
讯享网
讯享网 public static void main(String[] args) { System.out.println(getMonth()); } // 2019-01-01 and 2019-01-31
2.获取去年当月时间范围
public static String getMonthLastYear(){ SimpleDateFormat format=new SimpleDateFormat("yyyyMMdd"); Calendar lastYearStart = Calendar.getInstance(); lastYearStart.add(Calendar.YEAR, -1); lastYearStart.add(Calendar.MONTH, 0); lastYearStart.set(Calendar.DAY_OF_MONTH,1); String firstDayLastYear = format.format(lastYearStart.getTime()); Calendar lastYearEnd = Calendar.getInstance(); lastYearEnd.add(Calendar.YEAR, -1); lastYearEnd.add(Calendar.MONTH, 0); lastYearEnd.set(Calendar.DAY_OF_MONTH, lastYearEnd.getActualMaximum(Calendar.DAY_OF_MONTH)); String endDayLastYear = format.format(lastYearEnd.getTime()); return firstDayLastYear+" and "+endDayLastYear; }
讯享网 public static void main(String[] args) { System.out.println(getMonthLastYear()); } // and
3. 获取某年某月时间范围
public static String getMonthAround(String date){ SimpleDateFormat format=new SimpleDateFormat("yyyy-MM"); SimpleDateFormat format2=new SimpleDateFormat("yyyy-MM-dd"); Date monthDate = null; try { monthDate = format.parse(date); } catch (ParseException e) { e.printStackTrace(); } Calendar lastYearStart = Calendar.getInstance(); lastYearStart.setTime(monthDate); lastYearStart.set(Calendar.DAY_OF_MONTH,1); String firstDayLastYear = format2.format(lastYearStart.getTime()); Calendar lastYearEnd = Calendar.getInstance(); lastYearEnd.setTime(monthDate); lastYearEnd.set(Calendar.DAY_OF_MONTH, lastYearEnd.getActualMaximum(Calendar.DAY_OF_MONTH)); String endDayLastYear = format2.format(lastYearEnd.getTime()); return firstDayLastYear+" and "+endDayLastYear; }
讯享网 public static void main(String[] args) { System.out.println(getMonthAround("2019-06")); } // 2019-06-01 and 2019-06-30
4.获取某日去年的时间,如果是闰年二月29号,前一年自动变成28号
public static String getDateDayLastYear(String dateStr){ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date = null; try { date = format.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); } Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.YEAR, -1); cal.add(Calendar.MONTH, 0); String lastDay = format.format(cal.getTime()); return lastDay; }
讯享网 public static void main(String[] args) { System.out.println(getDateDayLastYear("2019-2-28")); } // 2018-02-28
5.计算两个日期之间所包含的天数
public static int differentDays(String startDate,String endDate){ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date2 = null; Date date1 = null; try { date1 = format.parse(startDate); date2 = format.parse(endDate); } catch (ParseException e) { e.printStackTrace(); } Calendar cal1 = Calendar.getInstance(); cal1.setTime(date1); Calendar cal2 = Calendar.getInstance(); cal2.setTime(date2); int day1= cal1.get(Calendar.DAY_OF_YEAR); int day2 = cal2.get(Calendar.DAY_OF_YEAR); int year1 = cal1.get(Calendar.YEAR); int year2 = cal2.get(Calendar.YEAR); if(year1 != year2) { int timeDistance = 0 ; for(int i = year1 ; i < year2 ; i ++) { //闰年 if(i%4==0 && i%100!=0 || i%400==0){ timeDistance += 366; } else{ //不是闰年 timeDistance += 365; } } return timeDistance + (day2-day1)+1 ; } else{ //同年 return day2-day1+1; } }
讯享网 public static void main(String[] args) { System.out.println(differentDays("2019-2-26","2019-2-28")); } // 3
6.获取上个月的第一天和最后一天
public static String getLastMonth(){ SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar=Calendar.getInstance(); calendar.add(Calendar.MONTH, -1); calendar.set(Calendar.DAY_OF_MONTH, 1); Calendar calendar1=Calendar.getInstance(); int month=calendar1.get(Calendar.MONTH); calendar1.set(Calendar.MONTH, month-1); calendar1.set(Calendar.DAY_OF_MONTH, calendar1.getActualMaximum(Calendar.DAY_OF_MONTH)); String firstDay = format.format(calendar.getTime()); String lastDay = format.format(calendar1.getTime()); return firstDay+" and "+lastDay; }
讯享网 public static void main(String[] args) { System.out.println(getLastMonth()); } // 2018-12-01 and 2018-12-31
7.获取某个时间的当周时间范围
public static String getWeek(String date){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date time = null; try { time = sdf.parse(date); } catch (ParseException e) { e.printStackTrace(); } Calendar cal = Calendar.getInstance(); cal.setTime(time); 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); String imptimeBegin = sdf.format(cal.getTime()); cal.add(Calendar.DATE, 6); String imptimeEnd = sdf.format(cal.getTime()); return imptimeBegin + " and " + imptimeEnd; }
讯享网 public static void main(String[] args) { System.out.println(getWeek("2019-01-23")); } // 2019-01-21 and 2019-01-27
8.指定日期加上天数后的日期
// @param num 为增加的天数 // @param newDate 创建时间 public static String plusDay(int num, String newDate) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date dt = null; try { dt = sdf.parse(newDate); } catch (ParseException e) { e.printStackTrace(); } Calendar rightNow = Calendar.getInstance(); rightNow.setTime(dt); rightNow.add(Calendar.DAY_OF_YEAR, num); Date dt1 = rightNow.getTime(); String reStr = sdf.format(dt1); return reStr; }
讯享网 public static void main(String[] args) { System.out.println(plusDay(2,"2019-01-23")); } //2019-01-25
9.指定日期加上月数后的日期
public static String plusMonth(int num, String newDate) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date dt = null; try { dt = sdf.parse(newDate); } catch (ParseException e) { e.printStackTrace(); } Calendar rightNow = Calendar.getInstance(); rightNow.setTime(dt); rightNow.add(Calendar.MONTH,num);//日期加3个月 Date dt1 = rightNow.getTime(); String reStr = sdf.format(dt1); return reStr; }
讯享网 public static void main(String[] args) { System.out.println(plusMonth(12,"2004-02-29")); } //2005-02-28
10.获取上个月的今天
public static String getFirstDate() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cl = Calendar.getInstance(); cl.add(Calendar.MONTH, -1); Date dateFrom = cl.getTime(); return sdf.format(dateFrom); }
讯享网 public static void main(String[] args) { System.out.println(getFirstDate()); } //2018-12-23
11.获取某天的下一天
public static String getNextDate(String newDate) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date dt = null; try { dt = sdf.parse(newDate); } catch (ParseException e) { e.printStackTrace(); } Calendar rightNow = Calendar.getInstance(); rightNow.setTime(dt); rightNow.add(Calendar.DATE,1);//日期加1天 Date dt1 = rightNow.getTime(); String reStr = sdf.format(dt1); return reStr; }
讯享网 public static void main(String[] args) { System.out.println(getNextDate("2019-02-20")); } //2019-02-21

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/20850.html