FormatDate.java
package com.ucit.ca.webApp.tool;import java.util.*;import java.text.*;public class FormatDate {public FormatDate() {}// 格式化日期為字串 "yyyy-MM-dd hh:mm"public String formatDateTime(Date basicDate, String strFormat) {SimpleDateFormat df = new SimpleDateFormat(strFormat);return df.format(basicDate);}// 格式化日期為字串 "yyyy-MM-dd hh:mm"public String formatDateTime(String basicDate, String strFormat) {SimpleDateFormat df = new SimpleDateFormat(strFormat);Date tmpDate = null;try {tmpDate = df.parse(basicDate);} catch (Exception e) {// 日期型字串格式錯誤}return df.format(tmpDate);}// 當前日期加減n天后的日期,返回String (yyyy-mm-dd)public String nDaysAftertoday(int n) {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");Calendar rightNow = Calendar.getInstance();// rightNow.add(Calendar.DAY_OF_MONTH,-1);rightNow.add(Calendar.DAY_OF_MONTH, +n);return df.format(rightNow.getTime());}// 當前日期加減n天后的日期,返回String (yyyy-mm-dd)public Date nDaysAfterNowDate(int n) {Calendar rightNow = Calendar.getInstance();// rightNow.add(Calendar.DAY_OF_MONTH,-1);rightNow.add(Calendar.DAY_OF_MONTH, +n);return rightNow.getTime();}// 給定一個日期型字串,返回加減n天后的日期型字串public String nDaysAfterOneDateString(String basicDate, int n) {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");Date tmpDate = null;try {tmpDate = df.parse(basicDate);} catch (Exception e) {// 日期型字串格式錯誤}long nDay = (tmpDate.getTime() / (24 * 60 * 60 * 1000) + 1 + n)* (24 * 60 * 60 * 1000);tmpDate.setTime(nDay);return df.format(tmpDate);}// 給定一個日期,返回加減n天后的日期public Date nDaysAfterOneDate(Date basicDate, int n) {long nDay = (basicDate.getTime() / (24 * 60 * 60 * 1000) + 1 + n)* (24 * 60 * 60 * 1000);basicDate.setTime(nDay);return basicDate;}// 計算兩個日期相隔的天數public int nDaysBetweenTwoDate(Date firstDate, Date secondDate) {int nDay = (int) ((secondDate.getTime() - firstDate.getTime()) / (24 * 60 * 60 * 1000));return nDay;}// 計算兩個日期相隔的天數public int nDaysBetweenTwoDate(String firstString, String secondString) {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");Date firstDate = null;Date secondDate = null;try {firstDate = df.parse(firstString);secondDate = df.parse(secondString);} catch (Exception e) {// 日期型字串格式錯誤}int nDay = (int) ((secondDate.getTime() - firstDate.getTime()) / (24 * 60 * 60 * 1000));return nDay;}}
源碼:
http://cid-6adab3222e64b22c.skydrive.live.com/self.aspx/.Public/%e4%bb%a3%e7%a0%81/javaToolClass/FormatDate.java