Java对日期的处置小结

Java对日期的处理小结
先是写一个工具类,完成由Date-->String,String-->Date,Date-->Calendar,Calendar-->Date
的转化,并在此基础上衍生出Calendar-->String,String-->Calendar。至此便可以完成一般的对日期的操作(由String类型的传进去交由Calendar处理)然后再输出显示按照预期想要的格式的处理后的日期
(一)DateUtils.java
package cn.ldc.baseskill.date;

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

/**
 * @author     : Tony
 * @createTime :2011-4-6 下午08:37:08
 * @class_name :DateUtils.java
 */
public class DateUtils {
	//Date -->String
	private static String dateToString(Date date,String format){
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		return sdf.format(date);
	}
	
	//String --->Date
	private static Date stringToDate(String source,String format){
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		try {
			return sdf.parse(source);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	//Date-->Calendar 
	private static Calendar dateToCalendar(Date date){
		GregorianCalendar cal = new GregorianCalendar();
		cal.setTime(date);
		return cal;
	}
	
	//Calendar-->Date
	private static Date calendarToDate(Calendar cal){
		return cal.getTime();
	}
	
	//Calendar --> String 用於計算結束后的顯示
	static String calendarToString(Calendar cal,String format){
		return dateToString(calendarToDate(cal),format);
	}
	
	//String -->Calendar 用於計算
	static Calendar stringToCalendar(String source,String format){
		return dateToCalendar(stringToDate(source,format));
	}
}

在此基础上完成几个小操作
//根據任意一個日期得到它所在的星期
	static int getWeek(String source,String format) throws ParseException{
		Calendar cal = DateUtils.stringToCalendar(source, format);
		return cal.get(Calendar.DAY_OF_WEEK)-1;
	}
	
	//今天N天以後的那一天的日期
	static String getDay(int n){
		Calendar cal = Calendar.getInstance();
		return DateUtils.calendarToString(cal, "yyyy-MM-dd");
	}
	
	//获得距离指定日期n天前或后的那一天的日期 
	static String getSomeDay(String source,String format,int amount){
		Calendar cal = DateUtils.stringToCalendar(source, format);
		cal.add(Calendar.DATE, amount);
		return DateUtils.calendarToString(cal, format);
	}

调用以上三个函数输出结果:
3
2011-04-06
2010-04-04