Java日期處理-本期,同期,上期

在做項目時候,有時需要給日期的查詢條件在後臺用java賦初始值,比如現在時間是2015-04-12,日期下拉框需要第一次默認的查詢的起止日期爲2015-04-01至2015-04-12則可以如下處理:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;


public class TestCalendar1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		getCurrentMonthStartDate("yyyy-MM-dd");
		getCurrentDate("yyyy-MM-dd");
	}
	
	/**
	 * 獲取當前月一號時間
	 * @param str
	 * @return
	 */
	public static String getCurrentMonthStartDate(String str){
		SimpleDateFormat sdf = new SimpleDateFormat(str);
		Calendar date = Calendar.getInstance();
		date.set(Calendar.DAY_OF_MONTH, 1);
		System.out.println("當前月一號時間:"+sdf.format(date.getTime()));
		return sdf.format(date.getTime());
	}
	
	/**
	 * 獲取當前日期
	 * @param str
	 * @return
	 */
	public static String getCurrentDate(String str){
		SimpleDateFormat sdf = new SimpleDateFormat(str);
		Calendar date = new GregorianCalendar();
		System.out.println("當前日期:"+sdf.format(date.getTime()));
		return sdf.format(date.getTime());
		
	}

}

執行後輸出結果爲:

當前月一號時間:2015-04-01
當前日期:2015-04-12

注意:Calendar.getInstance()和new GregorianCalendar()效果一樣,通過查看java源碼getInstance()方法是實例化了一個GregorianCalendar


上期時間:

        public static String getLastMonthDate(String str){
		SimpleDateFormat sdf = new SimpleDateFormat(str);
		Calendar date = Calendar.getInstance();
		date.add(Calendar.MONTH, -1);
		System.out.println("上期日期:"+sdf.format(date.getTime()));
		return sdf.format(date.getTime());
	}

結果:

上期日期:2015-03-12

同期日期:

        public static String getLastYearCurrentDate(String str){
		SimpleDateFormat sdf = new SimpleDateFormat(str);
		Calendar date = new GregorianCalendar();
		date.add(Calendar.YEAR, -1);
		System.out.println("同期日期:"+sdf.format(date.getTime()));
		return sdf.format(date.getTime());
	}

結果:

同期日期:2014-04-12


類似還有很多:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;


public class TestCalendar {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		System.out.println("當前日期:"+getCurrentDate("yyyy-MM-dd"));//當前日期:2015-04-11
		System.out.println("同期日期:"+getLastYearCurrentDate("yyyy-MM-dd"));//同期日期:2014-04-11
		System.out.println("上期日期:"+getLastMonthDate("yyyy-MM-dd"));//上期日期:2015-03-11
		System.out.println("當前月一號日期:"+getCurrentMonthStartDate("yyyy-MM-dd"));//當前月一號日期:2015-04-01
		System.out.println("同期月一號日期:"+getLastYearCurrentMonthStartDate("yyyy-MM-dd"));//同期月一號日期:2014-04-01
		System.out.println("當前年一月一號:"+getCurrentYearStartDate("yyyy-MM-dd"));//當前年一月一號:2015-01-01
		System.out.println("去年一月一號"+geLastYearStartDate("yyyy-MM-dd"));//去年一月一號2014-01-01

	}
	
	/**
	 * 獲取當前日期
	 * @param str
	 * @return
	 */
	public static String getCurrentDate(String str){
		SimpleDateFormat sdf = new SimpleDateFormat(str);
		Calendar date = new GregorianCalendar();
		return sdf.format(date.getTime());
	}
	/**
	 * 獲取去年同一時間
	 * @param str
	 * @return
	 */
	public static String getLastYearCurrentDate(String str){
		SimpleDateFormat sdf = new SimpleDateFormat(str);
		Calendar date = new GregorianCalendar();
		date.add(Calendar.YEAR, -1);
		return sdf.format(date.getTime());
	}
	/**
	 * 獲取上個月同一時間
	 * @param str
	 * @return
	 */
	public static String getLastMonthDate(String str){
		SimpleDateFormat sdf = new SimpleDateFormat(str);
		//Calendar date = new GregorianCalendar();
		Calendar date = Calendar.getInstance();
		/*
		 * Calendar.getInstance()和new GregorianCalendar()效果一樣
		 * Calendar.getInstance()查看其getInstance()方法也是實例化了GregorianCalendar()
		 */
		date.add(Calendar.MONTH, -1);
		return sdf.format(date.getTime());
	}
	/**
	 * 獲取當前月一號時間
	 * @param str
	 * @return
	 */
	public static String getCurrentMonthStartDate(String str){
		SimpleDateFormat sdf = new SimpleDateFormat(str);
		Calendar date = Calendar.getInstance();
		//date.set(Calendar.DATE, 1);
		date.set(Calendar.DAY_OF_MONTH, 1);//DATE和DAY_OF_WEEK效果一樣,都是指一個月中的某天
		return sdf.format(date.getTime());
	}
	/**
	 * 獲取去年當前月一號
	 * @param str
	 * @return
	 */
	public static String getLastYearCurrentMonthStartDate(String str){
		SimpleDateFormat sdf = new SimpleDateFormat(str);
		Calendar date = Calendar.getInstance();
		date.add(Calendar.YEAR, -1);
		date.set(Calendar.DATE, 1);
		return sdf.format(date.getTime());
	}
	/**
	 * 獲取今年一月一號
	 * @param str
	 * @return
	 */
	public static String getCurrentYearStartDate(String str){
		SimpleDateFormat sdf = new SimpleDateFormat(str);
		Calendar date = Calendar.getInstance();
		date.set(date.get(Calendar.YEAR), 0, 1);
		return sdf.format(date.getTime());
	}
	/**
	 * 獲取去年一月一號
	 * @param str
	 * @return
	 */
	public static String geLastYearStartDate(String str){
		SimpleDateFormat sdf = new SimpleDateFormat(str);
		Calendar date = Calendar.getInstance();
		date.set(date.get(Calendar.YEAR)-1, 0, 1);
		return sdf.format(date.getTime());
	}

}

結果:

當前日期:2015-04-12
同期日期:2014-04-12
上期日期:2015-03-12
當前月一號日期:2015-04-01
同期月一號日期:2014-04-01
當前年一月一號:2015-01-01
去年一月一號2014-01-01


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章