工具類:
package
com.power.date;
import
java.text.ParseException;
import
java.text.SimpleDateFormat;
import
java.util.Calendar;
import
java.util.Date;
public
class
DateUtils {
/**
* 格式化日期
*
@param
date
*
@param
pattern
*
@return
*/
public
static
String format(Date date,String pattern){
SimpleDateFormat format
=
new
SimpleDateFormat(pattern);
return
format.format(date);
}
/**
* 根據字符串生成日期
*
@param
dateStr
*
@param
pattern
*
@return
*
@throws
ParseException
*/
public
static
Date parse(String dateStr,String pattern)
throws
ParseException{
SimpleDateFormat format
=
new
SimpleDateFormat(pattern);
return
format.parse(dateStr);
}
/**
* 比較日期前后
*
@param
date
*
@param
when
*
@return
date在when之前,返回false,否則返回true
*/
public
static
boolean
after(Date date,Date when){
return
date.after(when);
}
/**
* 添加(或減小)時間
*
@param
date
*
@param
field 要添加(或減小)的字段(年或月或日或 )
*
@param
amount 要添加(或減小)的數量,amount為正數時,是添加,為負數時是減小
*
@return
日期
*/
public
static
Date add(Date date,
int
field,
int
amount){
Calendar ca
=
Calendar.getInstance();
ca.setTime(date);
ca.add(field, amount);
return
ca.getTime();
}
/**
* 添加(或減小)時間
*
@param
date
*
@param
field 要添加(或減小)的字段(年或月或日或 )
*
@param
amount 要添加(或減小)的數量,amount為正數時,是添加,為負數時是減小
*
@param
pattern 格式化模式
*
@return
格式化后的日期字符串
*/
public
static
String add(Date date,
int
field,
int
amount,String pattern){
Calendar ca
=
Calendar.getInstance();
ca.setTime(date);
ca.add(field, amount);
return
format(ca.getTime(),pattern);
}
public
class
DatePattern{
public
static
final
String Y_M_D
=
"
yyyy-MM-dd
"
;
public
static
final
String Y_M_D_H_M_S
=
"
yyyy-MM-dd HH:mm:ss
"
;
}
}
測試類:
/**
*
*/
package
com.power.date;
import
java.text.ParseException;
import
java.util.Calendar;
import
java.util.Date;
import
org.junit.Test;
import
static
junit.framework.Assert.
*
;
/**
*
@author
liwei
*
*/
public
class
TestDateUtils {
@Test
public
void
testFormat(){
Date now
=
new
Date();
System.out.println(DateUtils.format(now, DateUtils.DatePattern.Y_M_D));
System.out.println(DateUtils.format(now, DateUtils.DatePattern.Y_M_D_H_M_S));
}
@Test
public
void
testParse()
throws
ParseException{
String dateStr
=
"
2009-06-09
"
;
Date date
=
DateUtils.parse(dateStr, DateUtils.DatePattern.Y_M_D);
System.out.println(DateUtils.format(date, DateUtils.DatePattern.Y_M_D));
dateStr
=
"
2009-06-09 10:14:57
"
;
Date date2
=
DateUtils.parse(dateStr, DateUtils.DatePattern.Y_M_D_H_M_S);
System.out.println(DateUtils.format(date2, DateUtils.DatePattern.Y_M_D_H_M_S));
}
@Test
public
void
testAfter()
throws
ParseException{
String dateStr
=
"
2009-06-09
"
;
Date date
=
DateUtils.parse(dateStr, DateUtils.DatePattern.Y_M_D);
Date now
=
new
Date();
assertTrue(DateUtils.after(now, date));
}
@Test
public
void
testAdd()
throws
ParseException{
String dateStr
=
"
2009-06-09
"
;
Date date
=
DateUtils.parse(dateStr, DateUtils.DatePattern.Y_M_D);
Date date2
=
DateUtils.add(date, Calendar.MONDAY,
6
);
assertEquals(
"
2009-12-09
"
, DateUtils.format(date2, DateUtils.DatePattern.Y_M_D));
assertEquals(
"
2009-12-09
"
, DateUtils.add(date,Calendar.MONDAY,
6
,DateUtils.DatePattern.Y_M_D));
date2
=
DateUtils.add(date, Calendar.MONTH,
-
2
);
assertEquals(
"
2009-04-09
"
, DateUtils.format(date2, DateUtils.DatePattern.Y_M_D));
assertEquals(
"
2009-04-09
"
, DateUtils.add(date,Calendar.MONDAY,
-
2
,DateUtils.DatePattern.Y_M_D));
}
}
|