Java 日期工具类

在工作中经常被遇到要获取某天日期的情况,java.util.Date工具包中只提供了基本的方法,并不能满足实际需求,在实际的开发中经常需要编写重复的代码。因此我整理了一下经常要用到的几个日期需求,组封装成一个相对实用的工具类。代码如下:

package myTools;

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  :加减的天数
	 * */
	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];
	}
}
posted @ 2020-11-10 17:30  绿竹听风  阅读(181)  评论(0)    收藏  举报