使用commons-lang处理日期
JDK中提供了日期处理的API,但没有提供更细致和封装,实际应用中往往要自己写日期处理的内,apache的commons-lang项目提供了强大的日期处理方法。
1、格式化日期
在java开发的过程中,我们经常会指定日期的输出格式,即日期的格式化:如把当前日期的输出格式指定为××年××月××日 星期×,代码如下:
Date date = new Date();
DateFormatUtils.format(date, "yyyy年MM月dd日 E");
2、把字符串解析成日期格式
String s = "2008-08-12";
DateUtils.parseDate(s, new String[] { "yyyy-MM-dd" });
3、日期的加减
Date date1 = DateUtils.addDays(date, 2);
date为指定日期,2为指定的天数。
同样,求指定日期N月,N年的方法同上类似,只要把addDays(date,N)函数改为addMonths(date,N);
4、求两个指定日期之间时间间隔
Date d1 = DateUtils.parseDate("2008-08-12", new String[] { "yyyy-MM-dd" });
Date d2 = DateUtils.parseDate("2009-05-20", new String[] { "yyyy-MM-dd" });
String date2 = DurationFormatUtils.formatPeriod(d1.getTime(), d2.getTime(), "d");
其中,d1,d2为指定的日期,”d”代表指定日期之间的天数,如果求指定日期之间的月数只需把”d”改为”M”,同样,如果是年则用”y”.
<ftm:formatDate />标签;使用方法如下例:
<input name="birthday" type="text" id="birthday" value="<fmt:formatDate value=
"${user.birthday}" dateStyle="medium"/>" οnfοcus="calendar();" dataType="Require" msg="请输入出生日期!"/>
dateStyle共有五个属性值:default(就是不设置dateStyle属性) 、 short 、 medium 、 long 和 full 。格式如下(用2007年7月23日做例子):
short:84-10-9
medium :1984-10-09
long :1984年10月9日
full:1984年10月9日 星期二
注意事项:
1、 在lib目录中加入commons-lang.jar
2、 在对应的Java类中导入以下类
import org.apache.commons.lang.time.DateUtils;
import org.apache.commons.lang.time.DurationFormatUtils;
import org.apache.commons.lang.time.DateFormatUtils;