java使用Calendar類獲取常用簡(jiǎn)單工具類

前言:

在工作中,我們經(jīng)常會(huì)用到時(shí)間相關(guān)的。比如月初、月末、年初、年末、指定月份所在季度的季末、當(dāng)前時(shí)間加X(jué)天、x月、x年等這些常用的雖說(shuō)不難,但是如果要用到,立馬又想不起來(lái)。這里凱哥歸納了一些常用的放在一個(gè)工具類中。有需要的朋友可以拿去或是收藏。如果大家有更好的,歡迎留言。如果凱哥哪里不對(duì),歡迎大家留言罵起~。

聲明:本文有凱哥Java(www.kaigejava.com)發(fā)布于凱哥個(gè)人博客。

正文:

1:獲取指定日期 指定月份后的最后一天。返回格式:yyyyMMdd

獲取指定日期 指定月份后的最后一天

public static String getMaxMonthDate(String dateStr,String dftStr,int monthnum) {

if(StringUtils.isEmpty(dftStr)){

dftStr="yyyyMMdd";

}

SimpleDateFormat dft = new SimpleDateFormat(dftStr);

Calendar calendar = Calendar.getInstance();

try {

if(dateStr!=null && !"".equals(dateStr)){

calendar.setTime(dft.parse(dateStr));

}

} catch (ParseException e) {

e.printStackTrace();

}

calendar.add(Calendar.MONTH, monthnum);

calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));

return dft.format(calendar.getTime());

}

2:指定月份獲取對(duì)應(yīng)月所在季度末。返回yyyyMMdd

2:指定月份獲取對(duì)應(yīng)月所在季度末。返回yyyyMMdd

public String getThisSeasonEnd(String repeatDate,String dftStr) {

int xyear; // 日期屬性:年

int ymonth; // 日期屬性:月

SimpleDateFormat dft = new SimpleDateFormat(dftStr);

Calendar localTime = Calendar.getInstance();//獲取當(dāng)前

String dateString = "";

try {

if(repeatDate!=null && !"".equals(repeatDate)){

localTime.setTime(dft.parse(repeatDate));//設(shè)置時(shí)間

}

xyear = localTime.get(Calendar.YEAR);

ymonth = localTime.get(Calendar.MONTH) + 1;

if (ymonth >= 1 && ymonth <= 3) {

dateString = xyear + "-" + "03" + "-" + "31";

}

if (ymonth >= 4 && ymonth <= 6) {

dateString = xyear + "-" + "06" + "-" + "30";

}

if (ymonth >= 7 &&ymonth <= 9) {

dateString = xyear + "-" + "09" + "-" + "30";

}

if (ymonth >= 10 && ymonth <= 12) {

dateString = xyear + "-" + "12" + "-" + "31";

}

} catch (ParseException e) {

e.printStackTrace();

}

return dateString.replace("-", "");

}

3:?獲取指定日期所在年份最后一天。返回格式y(tǒng)yyyMMdd

3:?獲取指定日期所在年份最后一天。返回格式y(tǒng)yyyMMdd

public String getYearEnd(String repeatDate ,String dftStr){

if(StringUtils.isEmpty(dftStr)){

dftStr="yyyyMMdd";

}

SimpleDateFormat dft = new SimpleDateFormat(dftStr);

Calendar localTime = Calendar.getInstance();//獲取當(dāng)前

try {

if(repeatDate!=null && !"".equals(repeatDate)){

localTime.setTime(dft.parse(repeatDate));

repeatDate=localTime.get(Calendar.YEAR)+"1231";

}

} catch (ParseException e) {

e.printStackTrace();

}

return repeatDate;

}

這里凱哥偷懶了。獲取月份后直接加上1231.其實(shí)可以直接使用類獲取的。

4:指定日期開(kāi)始指定時(shí)間結(jié)束。返回格式y(tǒng)yyyMMdd

4:指定日期開(kāi)始指定時(shí)間結(jié)束。返回格式y(tǒng)yyyMMdd

public String getXLeter(String dateStr ,String dftStr,String type,int x){

if(StringUtils.isEmpty(dftStr)){

dftStr="yyyyMMdd";

}

SimpleDateFormat dft = new SimpleDateFormat(dftStr);

Calendar calendar = Calendar.getInstance();

try {

if(dateStr!=null && !"".equals(dateStr)){

calendar.setTime(dft.parse(dateStr));

}

} catch (ParseException e) {

e.printStackTrace();

}

if("01".equals(type)){//一個(gè)月后

//calendar.add(Calendar.DATE, x);

calendar.add(Calendar.MONTH, x);

}else if("02".equals(type)){//三個(gè)月后

calendar.add(Calendar.MONTH, x);

}else if("03".equals(type)){//一年后

calendar.add(Calendar.YEAR, x);

}

return dft.format(calendar.getTime());

}

5:獲取到月初、年初。返回格式y(tǒng)yyyMMdd

5:獲取到月初、年初。返回格式y(tǒng)yyyMMdd

public static String getMinMonthDate(String dateStr,String dftStr,int monthnum,String type) {

if(StringUtils.isEmpty(dftStr)){

dftStr="yyyyMMdd";

}

SimpleDateFormat dft = new SimpleDateFormat(dftStr);

Calendar calendar = Calendar.getInstance();

try {

if(dateStr!=null && !"".equals(dateStr)){

calendar.setTime(dft.parse(dateStr));

}

} catch (ParseException e) {

e.printStackTrace();

}

calendar.add(Calendar.MONTH, monthnum);

if("m".equals(type)){//月份

calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));

}else if("y".equals(type)){//

calendar.set(Calendar.DAY_OF_YEAR, calendar.getActualMinimum(Calendar.DAY_OF_YEAR));

}

return dft.format(calendar.getTime());

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容