在工作中經(jīng)常被遇到要獲取某天日期的情況,java.util.Date工具包中只提供了基本的方法,并不能滿足實際需求,在實際的開發(fā)中經(jīng)常需要編寫重復的代碼。因此我整理了一下經(jīng)常要用到的幾個日期需求,組封裝成一個相對實用的工具類。
代碼如下:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 獲取日期工具
*/
public class DateUtils {
/**
* 獲取今天
* @return String
* */
public static String getToday(){
return new SimpleDateFormat("yyyy-MM-dd").format(new Date());
}
/**
* 獲取昨天
* @return String
* */
public static String getYestoday(){
Calendar cal=Calendar.getInstance();
cal.add(Calendar.DATE,-1);
Date time=cal.getTime();
return new SimpleDateFormat("yyyy-MM-dd").format(time);
}
/**
* 獲取幾天前或幾天后的日期
* @return String
* num :加減的天數(shù)
* */
public static String getDaysAgoOrLater(int num){
Calendar cal=Calendar.getInstance();
cal.add(Calendar.DATE,num);
Date time=cal.getTime();
return new SimpleDateFormat("yyyy-MM-dd").format(time);
}
/**
* 獲取本月開始日期
* @return String
* **/
public static String getMonthStart(){
Calendar cal=Calendar.getInstance();
cal.add(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, 1);
Date time=cal.getTime();
return new SimpleDateFormat("yyyy-MM-dd").format(time);
}
/**
* 查詢加減月份后的當月第一天
* @param month
* @return
*/
public static String getMonthStart(int month){
Calendar cal=Calendar.getInstance();
cal.add(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, 1);
Date time=cal.getTime();
return new SimpleDateFormat("yyyy-MM-dd").format(time);
}
/**
* 獲取本月最后一天
* @return String
* **/
public static String getMonthEnd(){
Calendar cal=Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
Date time=cal.getTime();
return new SimpleDateFormat("yyyy-MM-dd").format(time);
}
/**
* 獲取本周的第一天
* @return String
* **/
public static String getWeekStart(){
Calendar cal=Calendar.getInstance();
cal.add(Calendar.WEEK_OF_MONTH, 0);
cal.set(Calendar.DAY_OF_WEEK, 2);
Date time=cal.getTime();
return new SimpleDateFormat("yyyy-MM-dd").format(time);
}
/**
* 獲取本周的最后一天
* @return String
* **/
public static String getWeekEnd(){
Calendar cal=Calendar.getInstance();
cal.set(Calendar.DAY_OF_WEEK, cal.getActualMaximum(Calendar.DAY_OF_WEEK));
cal.add(Calendar.DAY_OF_WEEK, 1);
Date time=cal.getTime();
return new SimpleDateFormat("yyyy-MM-dd").format(time) ;
}
/**
* 獲取本年的第一天
* @return String
* **/
public static String getYearStart(){
return new SimpleDateFormat("yyyy").format(new Date());
}
/**
* 獲取本年的最后一天
* @return String
* **/
public static String getYearEnd(){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH,calendar.getActualMaximum(Calendar.MONTH));
calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
Date currYearLast = calendar.getTime();
return new SimpleDateFormat("yyyy-MM-dd").format(currYearLast);
}
/**
* 獲取今天星期幾
* @return
*/
public static String getWeekDay(){
final String dayNames[] = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五","星期六" };
Calendar calendar = Calendar.getInstance();
Date date = new Date();
calendar.setTime(date);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK)-1;
if(dayOfWeek <0)dayOfWeek=0;
return dayNames[dayOfWeek];
}
}