Date Format

public class  DateFormate {
	
	/**
	 * 日期格式化函数 将日期类型转化为字符串类型
	 * @param date 日期
	 * @return 字符串形式如: "yyyy-MM-dd"
	 */
	public String getString(Date date){
		SimpleDateFormat sdft = new SimpleDateFormat("yyyy-MM-dd");
		String str = sdft.format(date);
		return str;
	}
	
	/**
	 * 日期格式化函数 将日期类型转化为字符串类型
	 * @param date 日期
	 * @return 字符串
	 */
	public String getString_Date(Date date){
		SimpleDateFormat sdft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		
		String str = sdft.format(date);
		
		return str;
	}
	
		
	/**
	 * 日期格式化函数 将字符串类型转化为日期类型
	 * @param str 字符串
	 * @return 日期
	 * @throws ParseException 
	 */
	public Date getDate(String str) throws ParseException{
		SimpleDateFormat sdft = new SimpleDateFormat("yyyy-MM-dd");
		Date date = new Date();
		date = sdft.parse(str);
		
		return date;
	}
	/**
	 * 日期格式化函数 将字符串类型转化为日期类型
	 * @param str 字符串
	 * @return 日期
	 * @throws ParseException 
	 */
	public Date getDate_sfm(String str){
		SimpleDateFormat sdft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		Date date = new Date();
		try {
			date = sdft.parse(str);
		} catch (ParseException e) {
		}
		return date;
	}
	public static Date convertStrToDate(String strDate) throws ParseException {
		Date date = null;
		date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(strDate);
		return date;
	} 
	
	/**
	 * 根据给定的字符串型日期格式,求出两个日期之间相差的月份数
	 * @param pFormerStr 字符串型日期
	 * @param pLatterStr 字符串型日期
	 * @return 月份数
	 */
	public static int monthsBetween(String pFormerStr, String pLatterStr) {
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		Date d = null;
		Date dd = null;
		try {
			d = format.parse(pFormerStr);
			dd = format.parse(pLatterStr);
		} catch (Exception e) {
			e.printStackTrace();
		}
		GregorianCalendar vFormer = (GregorianCalendar) GregorianCalendar
				.getInstance();
		vFormer.setTime(d);
		GregorianCalendar vLatter = (GregorianCalendar) GregorianCalendar
				.getInstance();
		vLatter.setTime(dd);
		return monthsBetween(vFormer, vLatter);
	}

	/**
	 * 根据给定的日期,求出两个日期之间相差的月份数
	 * @param pFormer 日期
	 * @param pLatter 日期
	 * @return 月份数
	 */
	public static int monthsBetween(GregorianCalendar pFormer,
			GregorianCalendar pLatter) {
		GregorianCalendar vFormer = pFormer, vLatter = pLatter;
		boolean vPositive = true;
		if (pFormer.before(pLatter)) {
			vFormer = pFormer;
			vLatter = pLatter;
		} else {
			vFormer = pLatter;
			vLatter = pFormer;
			vPositive = false;
		}

		int vCounter = 1;
		while (vFormer.get(vFormer.YEAR) != vLatter.get(vLatter.YEAR)
				|| vFormer.get(vFormer.MONTH) != vLatter.get(vLatter.MONTH)) {
			vFormer.add(Calendar.MONTH, 1);
			
			vCounter++;
		}
		if (vPositive)
			return vCounter;
		else
			return -vCounter;
	}
	/**
	 * 求给定日期的当前月份
	 * @param date1 字符串型给定日期
	 * @return 月份值
	 * @throws ParseException 
	 */
	public static int getMon(String date1) throws ParseException {
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		Date d = null;
		d = format.parse(date1);
		Calendar cal1 = Calendar.getInstance();
		cal1.setTime(d);
		int returnbool = cal1.get(Calendar.MONTH) + 1;
		return returnbool;
	}
	
	/**
	 * 根据年份月份返回某月的最后一天,如2009-05-06返回的是2009-05-31
	 * @param dateStr 日期
	 * @return 月份
	 */
	public static String getMonthL(String dateStr) throws ParseException {
		String returndate = dateStr;
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		Date date = null;
		date = format.parse(dateStr);
		Calendar cal = Calendar.getInstance();
		cal.setTime(date);
		cal.set(Calendar.DAY_OF_MONTH, cal
				.getActualMaximum(Calendar.DAY_OF_MONTH));
		returndate = format.format(cal.getTime());
		return returndate;
	}
}


 

你可能感兴趣的:(format)