Java获取指定日期的实现方法总结
2023-06-13 09:15:03 时间
格式化日期String-->Date或者Data-->String SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); Datedate=sdf.parse("2009-11-04");//String-->Date Stringsdate=sdf.format(date);//Data-->String=============================================================== packagecom.hefeng.test; importjava.text.DateFormat; importjava.text.ParsePosition; importjava.text.SimpleDateFormat; importjava.util.Calendar; importjava.util.Date; importjava.util.GregorianCalendar; publicclassTimeTest{ //用来全局控制上一周,本周,下一周的周数变化 privateintweeks=0; privateintMaxDate;//一月最大天数 privateintMaxYear;//一年最大天数 /** *@paramargs */ publicstaticvoidmain(String[]args){ TimeTesttt=newTimeTest(); System.out.println("得到6个月后的日期:"+tt.getAfterMonth(6); System.out.println("获取当天日期:"+tt.getNowTime("yyyy-MM-dd")); System.out.println("获取本周一日期:"+tt.getMondayOFWeek()); System.out.println("获取本周日的日期~:"+tt.getCurrentWeekday()); System.out.println("获取上周一日期:"+tt.getPreviousWeekday()); System.out.println("获取上周日日期:"+tt.getPreviousWeekSunday()); System.out.println("获取下周一日期:"+tt.getNextMonday()); System.out.println("获取下周日日期:"+tt.getNextSunday()); System.out.println("获得相应周的周六:"+tt.getNowTime("yyyy-MM-dd")); System.out.println("获取本月第一天日期:"+tt.getFirstDayOfMonth()); System.out.println("获取本月最后一天日期:"+tt.getDefaultDay()); System.out.println("获取上月第一天日期:"+tt.getPreviousMonthFirst()); System.out.println("获取上月最后一天的日期:"+tt.getPreviousMonthEnd()); System.out.println("获取下月第一天日期:"+tt.getNextMonthFirst()); System.out.println("获取下月最后一天日期:"+tt.getNextMonthEnd()); System.out.println("获取本年的第一天日期:"+tt.getCurrentYearFirst()); System.out.println("获取本年最后一天日期:"+tt.getCurrentYearEnd()); System.out.println("获取去年的第一天日期:"+tt.getPreviousYearFirst()); System.out.println("获取去年的最后一天日期:"+tt.getPreviousYearEnd()); System.out.println("获取明年第一天日期:"+tt.getNextYearFirst()); System.out.println("获取明年最后一天日期:"+tt.getNextYearEnd()); System.out.println("获取本季度第一天到最后一天:"+tt.getThisSeasonTime(11)); System.out.println("获取两个日期之间间隔天数2008-12-1~2008- .29:"+TimeTest.getTwoDay("2008-12-1","2008-9-29")); } /** *得到指定月后(前)的日期参数传负数即可 */ publicstaticStringgetAfterMonth(intmonth){ Calendarc=Calendar.getInstance();//获得一个日历的实例 SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); Datedate=null; try{ date=sdf.parse("2009-11-04");//初始日期 }catch(Exceptione){ } c.setTime(date);//设置日历时间 c.add(Calendar.MONTH,month);//在日历的月份上增加6个月 StringstrDate=sdf.format(c.getTime()));//的到你想要得6个月后的日期 returnstrDate; } /** *得到二个日期间的间隔天数 */ publicstaticStringgetTwoDay(Stringsj1,Stringsj2){ SimpleDateFormatmyFormatter=newSimpleDateFormat("yyyy-MM-dd"); longday=0; try{ java.util.Datedate=myFormatter.parse(sj1); java.util.Datemydate=myFormatter.parse(sj2); day=(date.getTime()-mydate.getTime())/(24*60*60*1000); }catch(Exceptione){ return""; } returnday+""; } /** *根据一个日期,返回是星期几的字符串 */ publicstaticStringgetWeek(Stringsdate){ //再转换为时间 Datedate=TimeTest.strToDate(sdate); Calendarc=Calendar.getInstance(); c.setTime(date); //inthour=c.get(Calendar.DAY_OF_WEEK); //hour中存的就是星期几了,其范围1~7 //1=星期日7=星期六,其他类推 returnnewSimpleDateFormat("EEEE").format(c.getTime()); } /** *将短时间格式字符串转换为时间yyyy-MM-dd */ publicstaticDatestrToDate(StringstrDate){ SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); ParsePositionpos=newParsePosition(0); Datestrtodate=formatter.parse(strDate,pos); returnstrtodate; } /** *两个时间之间的天数 * *@paramdate1 *@paramdate2 *@return */ publicstaticlonggetDays(Stringdate1,Stringdate2){ if(date1==null||date1.equals("")) return0; if(date2==null||date2.equals("")) return0; //转换为标准时间 SimpleDateFormatmyFormatter=newSimpleDateFormat("yyyy-MM-dd"); java.util.Datedate=null; java.util.Datemydate=null; try{ date=myFormatter.parse(date1); mydate=myFormatter.parse(date2); }catch(Exceptione){ } longday=(date.getTime()-mydate.getTime())/(24*60*60*1000); returnday; } //计算当月最后一天,返回字符串 publicStringgetDefaultDay(){ Stringstr=""; SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); CalendarlastDate=Calendar.getInstance(); lastDate.set(Calendar.DATE,1);//设为当前月的1号 lastDate.add(Calendar.MONTH,1);//加一个月,变为下月的1号 lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天 str=sdf.format(lastDate.getTime()); returnstr; } //上月第一天 publicStringgetPreviousMonthFirst(){ Stringstr=""; SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); CalendarlastDate=Calendar.getInstance(); lastDate.set(Calendar.DATE,1);//设为当前月的1号 lastDate.add(Calendar.MONTH,-1);//减一个月,变为下月的1号 //lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天 str=sdf.format(lastDate.getTime()); returnstr; } //获取当月第一天 publicStringgetFirstDayOfMonth(){ Stringstr=""; SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); CalendarlastDate=Calendar.getInstance(); lastDate.set(Calendar.DATE,1);//设为当前月的1号 str=sdf.format(lastDate.getTime()); returnstr; } //获得本周星期日的日期 publicStringgetCurrentWeekday(){ weeks=0; intmondayPlus=this.getMondayPlus(); GregorianCalendarcurrentDate=newGregorianCalendar(); currentDate.add(GregorianCalendar.DATE,mondayPlus+6); Datemonday=currentDate.getTime(); DateFormatdf=DateFormat.getDateInstance(); StringpreMonday=df.format(monday); returnpreMonday; } //获取当天时间 publicStringgetNowTime(Stringdateformat){ Datenow=newDate(); SimpleDateFormatdateFormat=newSimpleDateFormat(dateformat);//可 以方便 地修改日期格式 Stringhehe=dateFormat.format(now); returnhehe; } //获得当前日期与本周日相差的天数 privateintgetMondayPlus(){ Calendarcd=Calendar.getInstance(); //获得今天是一周的第几天,星期日是第一天,星期二是第二天...... intdayOfWeek=cd.get(Calendar.DAY_OF_WEEK)-1;//因为按中国礼拜一 作为第一 天所以这里减1 if(dayOfWeek==1){ return0; }else{ return1-dayOfWeek; } } //获得本周一的日期 publicStringgetMondayOFWeek(){ weeks=0; intmondayPlus=this.getMondayPlus(); GregorianCalendarcurrentDate=newGregorianCalendar(); currentDate.add(GregorianCalendar.DATE,mondayPlus); Datemonday=currentDate.getTime(); DateFormatdf=DateFormat.getDateInstance(); StringpreMonday=df.format(monday); returnpreMonday; } //获得相应周的周六的日期 publicStringgetSaturday(){ intmondayPlus=this.getMondayPlus(); GregorianCalendarcurrentDate=newGregorianCalendar(); currentDate.add(GregorianCalendar.DATE,mondayPlus+7*weeks+6); Datemonday=currentDate.getTime(); DateFormatdf=DateFormat.getDateInstance(); StringpreMonday=df.format(monday); returnpreMonday; } //获得上周星期日的日期 publicStringgetPreviousWeekSunday(){ weeks=0; weeks--; intmondayPlus=this.getMondayPlus(); GregorianCalendarcurrentDate=newGregorianCalendar(); currentDate.add(GregorianCalendar.DATE,mondayPlus+weeks); Datemonday=currentDate.getTime(); DateFormatdf=DateFormat.getDateInstance(); StringpreMonday=df.format(monday); returnpreMonday; } //获得上周星期一的日期 publicStringgetPreviousWeekday(){ weeks--; intmondayPlus=this.getMondayPlus(); GregorianCalendarcurrentDate=newGregorianCalendar(); currentDate.add(GregorianCalendar.DATE,mondayPlus+7*weeks); Datemonday=currentDate.getTime(); DateFormatdf=DateFormat.getDateInstance(); StringpreMonday=df.format(monday); returnpreMonday; } //获得下周星期一的日期 publicStringgetNextMonday(){ weeks++; intmondayPlus=this.getMondayPlus(); GregorianCalendarcurrentDate=newGregorianCalendar(); currentDate.add(GregorianCalendar.DATE,mondayPlus+7); Datemonday=currentDate.getTime(); DateFormatdf=DateFormat.getDateInstance(); StringpreMonday=df.format(monday); returnpreMonday; } //获得下周星期日的日期 publicStringgetNextSunday(){ intmondayPlus=this.getMondayPlus(); GregorianCalendarcurrentDate=newGregorianCalendar(); currentDate.add(GregorianCalendar.DATE,mondayPlus+7+6); Datemonday=currentDate.getTime(); DateFormatdf=DateFormat.getDateInstance(); StringpreMonday=df.format(monday); returnpreMonday; } privateintgetMonthPlus(){ Calendarcd=Calendar.getInstance(); intmonthOfNumber=cd.get(Calendar.DAY_OF_MONTH); cd.set(Calendar.DATE,1);//把日期设置为当月第一天 cd.roll(Calendar.DATE,-1);//日期回滚一天,也就是最后一天 MaxDate=cd.get(Calendar.DATE); if(monthOfNumber==1){ return-MaxDate; }else{ return1-monthOfNumber; } } //获得上月最后一天的日期 publicStringgetPreviousMonthEnd(){ Stringstr=""; SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); CalendarlastDate=Calendar.getInstance(); lastDate.add(Calendar.MONTH,-1);//减一个月 lastDate.set(Calendar.DATE,1);//把日期设置为当月第一天 lastDate.roll(Calendar.DATE,-1);//日期回滚一天,也就是本月最后一天 str=sdf.format(lastDate.getTime()); returnstr; } //获得下个月第一天的日期 publicStringgetNextMonthFirst(){ Stringstr=""; SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); CalendarlastDate=Calendar.getInstance(); lastDate.add(Calendar.MONTH,1);//减一个月 lastDate.set(Calendar.DATE,1);//把日期设置为当月第一天 str=sdf.format(lastDate.getTime()); returnstr; } //获得下个月最后一天的日期 publicStringgetNextMonthEnd(){ Stringstr=""; SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); CalendarlastDate=Calendar.getInstance(); lastDate.add(Calendar.MONTH,1);//加一个月 lastDate.set(Calendar.DATE,1);//把日期设置为当月第一天 lastDate.roll(Calendar.DATE,-1);//日期回滚一天,也就是本月最后一天 str=sdf.format(lastDate.getTime()); returnstr; } //获得明年最后一天的日期 publicStringgetNextYearEnd(){ Stringstr=""; SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); CalendarlastDate=Calendar.getInstance(); lastDate.add(Calendar.YEAR,1);//加一个年 lastDate.set(Calendar.DAY_OF_YEAR,1); lastDate.roll(Calendar.DAY_OF_YEAR,-1); str=sdf.format(lastDate.getTime()); returnstr; } //获得明年第一天的日期 publicStringgetNextYearFirst(){ Stringstr=""; SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); CalendarlastDate=Calendar.getInstance(); lastDate.add(Calendar.YEAR,1);//加一个年 lastDate.set(Calendar.DAY_OF_YEAR,1); str=sdf.format(lastDate.getTime()); returnstr; } //获得本年有多少天 privateintgetMaxYear(){ Calendarcd=Calendar.getInstance(); cd.set(Calendar.DAY_OF_YEAR,1);//把日期设为当年第一天 cd.roll(Calendar.DAY_OF_YEAR,-1);//把日期回滚一天。 intMaxYear=cd.get(Calendar.DAY_OF_YEAR); returnMaxYear; } privateintgetYearPlus(){ Calendarcd=Calendar.getInstance(); intyearOfNumber=cd.get(Calendar.DAY_OF_YEAR);//获得当天是一年中的第几天 cd.set(Calendar.DAY_OF_YEAR,1);//把日期设为当年第一天 cd.roll(Calendar.DAY_OF_YEAR,-1);//把日期回滚一天。 intMaxYear=cd.get(Calendar.DAY_OF_YEAR); if(yearOfNumber==1){ return-MaxYear; }else{ return1-yearOfNumber; } } //获得本年第一天的日期 publicStringgetCurrentYearFirst(){ intyearPlus=this.getYearPlus(); GregorianCalendarcurrentDate=newGregorianCalendar(); currentDate.add(GregorianCalendar.DATE,yearPlus); DateyearDay=currentDate.getTime(); DateFormatdf=DateFormat.getDateInstance(); StringpreYearDay=df.format(yearDay); returnpreYearDay; } //获得本年最后一天的日期* publicStringgetCurrentYearEnd(){ Datedate=newDate(); SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy");//可以方 便地修 改日期格式 Stringyears=dateFormat.format(date); returnyears+"-12-31"; } //获得上年第一天的日期* publicStringgetPreviousYearFirst(){ Datedate=newDate(); SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy");//可以方 便地修 改日期格式 Stringyears=dateFormat.format(date);intyears_value=Integer.parseInt (years); years_value--; returnyears_value+"-1-1"; } //获得上年最后一天的日期 publicStringgetPreviousYearEnd(){ weeks--; intyearPlus=this.getYearPlus(); GregorianCalendarcurrentDate=newGregorianCalendar(); currentDate.add(GregorianCalendar.DATE,yearPlus+MaxYear*weeks+(MaxYear-1)); DateyearDay=currentDate.getTime(); DateFormatdf=DateFormat.getDateInstance(); StringpreYearDay=df.format(yearDay); getThisSeasonTime(11); returnpreYearDay; } //获得本季度 publicStringgetThisSeasonTime(intmonth){ intarray[][]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}}; intseason=1; if(month>=1&&month<=3){ season=1; } if(month>=4&&month<=6){ season=2; } if(month>=7&&month<=9){ season=3; } if(month>=10&&month<=12){ season=4; } intstart_month=array[season-1][0]; intend_month=array[season-1][2]; Datedate=newDate(); SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy");//可以方 便地修 改日期格式 Stringyears=dateFormat.format(date); intyears_value=Integer.parseInt(years); intstart_days=1;//years+"-"+String.valueOf(start_month)+"- ";//getLastDayOfMonth(years_value,start_month); intend_days=getLastDayOfMonth(years_value,end_month); StringseasonDate= years_value+"-"+start_month+"-"+start_days+";"+years_value+"-"+end_month+"-"+end_days; returnseasonDate; } /** *获取某年某月的最后一天 *@paramyear年 *@parammonth月 *@return最后一天 */ privateintgetLastDayOfMonth(intyear,intmonth){ if(month==1||month==3||month==5||month==7||month==8 ||month==10||month==12){ return31; } if(month==4||month==6||month==9||month==11){ return30; } if(month==2){ if(isLeapYear(year)){ return29; }else{ return28; } } return0; } /** *是否闰年 *@paramyear年 *@return */ publicbooleanisLeapYear(intyear){ return(year%4==0&&year%100!=0)||(year%400==0); }
相关文章
- java解析xml方法_详解Java解析XML的四种方法
- java除法保留两位小数_JAVA除法保留小数点后两位的两种方法
- fileinputstream java_Java FileInputStream close()方法
- java 删除目录下所有文件_Java删除文件、目录及目录下所有文件的方法实例
- java calendar 设置小时_Java Calendar.set 方法设置时间的问题
- java xml解析框架_JAVA解析xml的五种方式对比
- C++和Java哪个比较好入门?初学者该如何选择?
- java网页安全提示_win7系统打开网页提示“应用程序已被JAVA安全阻止”的解决方法…
- java 随机数算法_Java随机数算法原理与实现方法实例详解
- java 取当前时间年月日_Java获取当前时间年月日的方法[通俗易懂]
- java url加密_Java实现url加密处理的方法示例
- java mutator,Java – 使用Accessor和Mutator方法「建议收藏」
- java如何将字符串转化为日期_java如何将字符串转为日期「建议收藏」
- java JNI: C 语言调用 Java 方法示例详解编程语言
- Java日期时间处理常用方法详解编程语言
- 实现Java程序操作MySQL数据库(java调用mysql)
- 在Linux中查看Java线程:一种方法(linux查看java线程)
- java搭建Linux环境下的Java SDK(sdk-linux)
- 运行参数Linux 下修改 Java 运行参数的指南(linux修改java)
- JAVA中日期格式转换各个字母代表含义详解编程语言
- 技巧Linux环境下提高Java编译效率的技巧(linux下java编译)
- Linux下查看Java进程的方法(linux查看java进程)
- 使用Java连接Linux服务器的简单方法(java连接linux)
- 使用Java实现Redis数据存储(redis集成java)
- 运行Linux中定时运行Java程序的实用方法(linux定时java)
- Java面试中的Redis题目剖析(java面试题redis)
- Learn How to Connect Your Java Application with MongoDB in Just a Few Steps(java连接mongodb)
- Linux下Java命令的使用方法简介(linux下java命令)
- 使用Java连接MySQL数据库的具体操作方法(java连接mysql代码)
- 使用Java去连接MySQL数据库(java jdbc mysql)
- Redis无法与Java建立连接(redis连不上java)