JAVA常用日历日期时间星期工具类封装方法非常多.docx
《JAVA常用日历日期时间星期工具类封装方法非常多.docx》由会员分享,可在线阅读,更多相关《JAVA常用日历日期时间星期工具类封装方法非常多.docx(23页珍藏版)》请在冰豆网上搜索。
![JAVA常用日历日期时间星期工具类封装方法非常多.docx](https://file1.bdocx.com/fileroot1/2023-2/2/45440fb4-faa2-487e-87e2-022d05c29add/45440fb4-faa2-487e-87e2-022d05c29add1.gif)
JAVA常用日历日期时间星期工具类封装方法非常多
JAVA常用日历|日期|时间|星期工具类(封装方法非常多)
相信大部分程序语言都需要处理日期、日历和时间相关的数据。
本工具类是基于JAVA语言,封装了常用的方法,这些方法来源于各种实际项目,大部分都是会直接用到的。
此工具类不依赖第三方JAR包,可以直接放入您的项目中使用。
方法全是自己手写的,若有不正确之处还请指出。
此工具类会不断更新完善,有需要的就收藏一下吧
。
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Arrays;
importjava.util.Calendar;
importjava.util.Date;
importjava.util.GregorianCalendar;
/**
*日历日期工具类
*@decription提供常用的获取日期、星期、周数以及转换操作
*@authorZebe
*@date2014/11/27
*@version1.0.2
*/publicclassCalendarUtil{
privatestaticintWEEKS=0;
privatestaticSimpleDateFormatSDF=newSimpleDateFormat("yyyy-MM-dd");
privatestaticSimpleDateFormatSDFT=newSimpleDateFormat("yyyy-MM-ddHH:
mm:
ss");
/**
*获取当前年份
*@returnString例如:
2014
*/
publicstaticStringgetYear(){
Calendarcd=Calendar.getInstance();
returnString.valueOf(cd.get(Calendar.YEAR));
}
/**
*获取某个日期中的年份
*@returnString例如:
2014-05-16返回2014
*/
publicstaticStringgetYearOfDate(Stringdate){
Calendarcd=Calendar.getInstance();
try{
cd.setTime(SDF.parse(date));
}catch(Exceptione){
e.printStackTrace();
}
returnString.valueOf(cd.get(Calendar.YEAR));
}
/**
*获取当前月份
*@returnString例如:
4
*/
publicstaticStringgetMonth(){
Calendarcd=Calendar.getInstance();
returnString.valueOf(cd.get(Calendar.MONTH)+1);
}
/**
*获取某个日期中的月份
*@returnString例如:
2014-05-16返回5
*/
publicstaticStringgetMonthOfDate(Stringdate){
Calendarcd=Calendar.getInstance();
try{
cd.setTime(SDF.parse(date));
}catch(Exceptione){
e.printStackTrace();
}
returnString.valueOf(cd.get(Calendar.MONTH)+1);
}
/**
*获取日期中的英文月份缩写
*@returnString
*/
publicstaticStringgetMonthShortEnNameOfDate(Stringdate){
Calendarcd=Calendar.getInstance();
Stringresult="";
try{
cd.setTime(SDF.parse(date));
intmonth=cd.get(Calendar.MONTH)+1;
switch(month){
case1:
result="JAN";
break;
case2:
result="FEB";
break;
case3:
result="MAR";
break;
case4:
result="APR";
break;
case5:
result="MAY";
break;
case6:
result="JUN";
break;
case7:
result="JUL";
break;
case8:
result="AUG";
break;
case9:
result="SEP";
break;
case10:
result="OCT";
break;
case11:
result="NOV";
break;
case12:
result="DEC";
break;
}
}catch(Exceptione){
e.printStackTrace();
}
returnresult;
}
/**
*获取当前日期
*@returnString例如:
23
*/
publicstaticStringgetDay(){
Calendarcd=Calendar.getInstance();
returnString.valueOf(cd.get(Calendar.DAY_OF_MONTH));
}
/**
*获取某个日期中的日期
*@returnString例如:
2014-05-16返回16
*/
publicstaticStringgetDayOfDate(Stringdate){
Calendarcd=Calendar.getInstance();
try{
cd.setTime(SDF.parse(date));
}catch(Exceptione){
e.printStackTrace();
}
returnString.valueOf(cd.get(Calendar.DAY_OF_MONTH));
}
/**
*获取昨天日期
*@returnyyyy-MM-dd
*/
publicstaticStringgetYesterday(){
Calendarcal=Calendar.getInstance();
try{
cal.setTime(SDF.parse(getToday()));
cal.add(Calendar.DAY_OF_YEAR,-1);
}catch(Exceptione){
e.printStackTrace();
}
returnSDF.format(cal.getTime());
}
/**
*获取今天日期
*@returnyyyy-MM-dd
*/
publicstaticStringgetToday(){
returnSDF.format(newDate());
}
/**
*获取明天日期
*@returnyyyy-MM-dd
*/
publicstaticStringgetTommorow(){
Calendarcal=Calendar.getInstance();
try{
cal.setTime(SDF.parse(getToday()));
cal.add(Calendar.DAY_OF_YEAR,+1);
}catch(Exceptione){
e.printStackTrace();
}
returnSDF.format(cal.getTime());
}
/**
*获取当前日期和时间
*@returnyyyy-MM-ddHH:
mm:
ss
*/
publicstaticStringgetDateTime(){
returnSDFT.format(newDate());
}
/**
*获得当前日期与本周一相差的天数
*@returnint
*/
privatestaticintgetMondayPlus(){
Calendarcd=Calendar.getInstance();
//获得今天是一周的第几天,星期日是第一天,星期二是第二天......
intdayOfWeek=cd.get(Calendar.DAY_OF_WEEK);
if(dayOfWeek==1){
return-6;
}else{
return2-dayOfWeek;
}
}
/**
*获得上周星期一的日期
*@returnyyyy-MM-dd
*/
publicstaticStringgetPreMonday(){
WEEKS--;
intmondayPlus=getMondayPlus();
GregorianCalendarcurrentDate=newGregorianCalendar();
currentDate.add(GregorianCalendar.DATE,mondayPlus+7*WEEKS);
Datemonday=currentDate.getTime();
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
returnsdf.format(monday);
}
/**
*获得本周星期一的日期
*@returnyyyy-MM-dd
*/
publicstaticStringgetMonday(){
WEEKS=0;
intmondayPlus=getMondayPlus();
GregorianCalendarcurrentDate=newGregorianCalendar();
currentDate.add(GregorianCalendar.DATE,mondayPlus);
Datemonday=currentDate.getTime();
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
returnsdf.format(monday);
}
/**
*获得下周星期一的日期
*@returnyyyy-MM-dd
*/
publicstaticStringgetNextMonday(){
WEEKS++;
intmondayPlus=getMondayPlus();
GregorianCalendarcurrentDate=newGregorianCalendar();
currentDate.add(GregorianCalendar.DATE,mondayPlus+7*WEEKS);
Datemonday=currentDate.getTime();
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
returnsdf.format(monday);
}
/**
*获取某一年第几周的星期一
*@returnyyyy-MM-dd
*/
publicstaticStringgetMondayOfWeek(intyear,intweek){
Calendarcal=Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.clear();
cal.set(Calendar.YEAR,year);
cal.set(Calendar.WEEK_OF_YEAR,week);
cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
returnSDF.format(cal.getTime());
}
/**
*获取某一年第几周的星期日
*@returnyyyy-MM-dd
*/
publicstaticStringgetSundayOfWeek(intyear,intweek){
Calendarcal=Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.clear();
cal.set(Calendar.YEAR,year);
cal.set(Calendar.WEEK_OF_YEAR,week);
cal.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);
returnSDF.format(cal.getTime());
}
/**
*获取指定周星期日的日期
*@returnyyyy-MM-dd
*/
publicstaticStringgetSunday(){
intmondayPlus=getMondayPlus();
GregorianCalendarcurrentDate=newGregorianCalendar();
currentDate.add(GregorianCalendar.DATE,mondayPlus+7*WEEKS+6);
Datemonday=currentDate.getTime();
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
returnsdf.format(monday);
}
/**
*获取当前周是本月的第几周
*@returnString
*/
publicstaticintgetWeekOfMonth(){
Calendarcd=Calendar.getInstance();
cd.setFirstDayOfWeek(Calendar.MONDAY);
returncd.get(Calendar.WEEK_OF_MONTH);
}
/**
*获取当前周是本年的第几周
*@returnString
*/
publicstaticintgetWeekOfYear(){
Calendarcd=Calendar.getInstance();
cd.setFirstDayOfWeek(Calendar.MONDAY);
returncd.get(Calendar.WEEK_OF_YEAR);
}
/**
*获取本月第一天
*@paramdate
*@returnyyyy-MM-dd
*/
publicstaticStringgetFirstDayOfThisMonth(){
Stringyear=getYear();
Stringmonth=getMonth();
if(month.length()==1){
returnyear+"-0"+month+"-01";
}
returnyear+"-"+month+"-01";
}
/**
*获取本月最后一天
*@paramdate
*@returnyyyy-MM-dd
*/
publicstaticStringgetLastDayOfThisMonth(){
Calendarcalendar=Calendar.getInstance();
try{
calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH)+1,1);
calendar.add(Calendar.DATE,-1);
}catch(Exceptione){
e.printStackTrace();
}
returnSDF.format(calendar.getTime());
}
/**
*获取指定年份月份的最后一天(整形参数)
*@parammonth
*@returnyyyy-MM-dd
*/
publicstaticStringgetLastDayOfMonth(intyear,intmonth){
Calendarcalendar=Calendar.getInstance();
try{
calendar.set(year,month,1);
calendar.add(Calendar.DATE,-1);
}catch(Exceptione){
e.printStackTrace();
}
returnSDF.format(calendar.getTime());
}
/**
*获取指定年份月份的最后一天(字符串参数)
*@parammonth
*@returnyyyy-MM-dd
*/
publicstaticStringgetLastDayOfMonth(Stringyear,Stringmonth){
inty=Integer.parseInt(year);
intm=Integer.parseInt(month);
returngetLastDayOfMonth(y,m);
}
/**
*获取两个日期之间相差天数
*@paramfromDay
*@paramtoDay
*@returnlong
*/
publicstaticlonggetDaysBetween(StringfromDay,StringtoDay){
longdays=0;
try{
Dated1=SDF.parse(fromDay);
Dated2=SDF.parse(toDay);
longdiff=d2.getTime()-d1.getTime();
days=diff/(1000*60*60*24);
}catch(Exceptione){
e.printStackTrace();
}
returndays;
}
/**
*按指定格式转换日期对象为字符串
*@paramdate日期对象
*@paramformat日期格式,如:
yyyy-MM-ddHH:
mm:
ss
*@returnString
*/
publicstaticStringconvertDateToString(Datedate,Stringformat){
SimpleDateFormatmySDF=newSimpleDateFormat(format);
StringdateStr=mySDF.format(date);
returndateStr;
}
/**
*按指定格式转换字符串为日期对象
*@paramdate字符串日期
*@paramformat日期格式,如:
yyyy-MM-ddHH:
mm:
ss
*@returnString
*/
publicstaticDateconvertStringToDate(Stringdate,Stringformat){
try{
SimpleDateFormatmySDF=newSimpleDateFormat(format);
DatedateTemp=mySDF.parse(date);
returndateTemp;
}catch(Exceptione){
e.printStackTrace();
returnnull;
}
}
/**
*获取指定分钟前的时间字符串
*@paramminute分钟
*@returnStringyyyy-MM-ddHH:
mm:
ss
*/
publicstaticStringgetPastTimeByMinute(intminute){
Datedate=newDate(newDate().getTime()-(minute*60*1000));
returnconvertDateToString(date,"yyyy-MM-ddHH:
mm:
ss");
}
/**
*获取指定分钟前的时间字符串(自定义格式)
*@paramminute分钟
*@paramformat日期格式,如:
yyyy-MM-ddHH:
mm:
ss
*@returnString
*/
publicstaticString