java bean 时间_java日期处理bean

importjava.text.ParsePosition;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importjava.util.GregorianCalendar;importjava.util.regex.Pattern;importorg.apache.commons.logging.Log;importorg.apache.commons.logging.LogFactory;publicclassDateUtil {protectedstaticLog logger=LogFactory.getLog(DateUtil.class);//格式:年-月-日 小时:分钟:秒publicstaticfinalString FORMAT_ONE="yyyy-MM-dd HH:mm:ss";//格式:年-月-日 小时:分钟publicstaticfinalString FORMAT_TWO="yyyy-MM-dd HH:mm";//格式:年月日 小时分钟秒publicstaticfinalString FORMAT_THREE="yyyyMMdd-HHmmss";//格式:年-月-日publicstaticfinalString LONG_DATE_FORMAT="yyyy-MM-dd";//格式:月-日publicstaticfinalString SHORT_DATE_FORMAT="MM-dd";//格式:小时:分钟:秒publicstaticfinalString LONG_TIME_FORMAT="HH:mm:ss";//格式:年-月publicstaticfinalString MONTG_DATE_FORMAT="yyyy-MM";//年的加减publicstaticfinalintSUB_YEAR=Calendar.YEAR;//月加减publicstaticfinalintSUB_MONTH=Calendar.MONTH;//天的加减publicstaticfinalintSUB_DAY=Calendar.DATE;//小时的加减publicstaticfinalintSUB_HOUR=Calendar.HOUR;//分钟的加减publicstaticfinalintSUB_MINUTE=Calendar.MINUTE;//秒的加减publicstaticfinalintSUB_SECOND=Calendar.SECOND;staticfinalString dayNames[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

@SuppressWarnings("unused")privatestaticfinalSimpleDateFormat timeFormat=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");publicDateUtil() {

}/*** 把符合日期格式的字符串转换为日期类型*/publicstaticjava.util.Date stringtoDate(String dateStr, String format) {

Date d=null;

SimpleDateFormat formater=newSimpleDateFormat(format);try{

formater.setLenient(false);

d=formater.parse(dateStr);

}catch(Exception e) {//log.error(e);d=null;

}returnd;

}/*** 把符合日期格式的字符串转换为日期类型*/publicstaticjava.util.Date stringtoDate(String dateStr, String format,

ParsePosition pos) {

Date d=null;

SimpleDateFormat formater=newSimpleDateFormat(format);try{

formater.setLenient(false);

d=formater.parse(dateStr, pos);

}catch(Exception e) {

d=null;

}returnd;

}/*** 把日期转换为字符串*/publicstaticString dateToString(java.util.Date date, String format) {

String result="";

SimpleDateFormat formater=newSimpleDateFormat(format);try{

result=formater.format(date);

}catch(Exception e) {//log.error(e);}returnresult;

}/*** 获取当前时间的指定格式*/publicstaticString getCurrDate(String format) {returndateToString(newDate(), format);

}publicstaticString dateSub(intdateKind, String dateStr,intamount) {

Date date=stringtoDate(dateStr, FORMAT_ONE);

Calendar calendar=Calendar.getInstance();

calendar.setTime(date);

calendar.add(dateKind, amount);returndateToString(calendar.getTime(), FORMAT_ONE);

}/*** 两个日期相减

*@return相减得到的秒数*/publicstaticlongtimeSub(String firstTime, String secTime) {longfirst=stringtoDate(firstTime, FORMAT_ONE).getTime();longsecond=stringtoDate(secTime, FORMAT_ONE).getTime();return(second-first)/1000;

}/*** 获得某月的天数*/publicstaticintgetDaysOfMonth(String year, String month) {intdays=0;if(month.equals("1")||month.equals("3")||month.equals("5")||month.equals("7")||month.equals("8")||month.equals("10")||month.equals("12")) {

days=31;

}elseif(month.equals("4")||month.equals("6")||month.equals("9")||month.equals("11")) {

days=30;

}else{if((Integer.parseInt(year)%4==0&&Integer.parseInt(year)%100!=0)||Integer.parseInt(year)%400==0) {

days=29;

}else{

days=28;

}

}returndays;

}/*** 获取某年某月的天数*/publicstaticintgetDaysOfMonth(intyear,intmonth) {

Calendar calendar=Calendar.getInstance();

calendar.set(year, month-1,1);returncalendar.getActualMaximum(Calendar.DAY_OF_MONTH);

}/*** 获得当前日期*/publicstaticintgetToday() {

Calendar calendar=Calendar.getInstance();returncalendar.get(Calendar.DATE);

}/*** 获得当前月份*/publicstaticintgetToMonth() {

Calendar calendar=Calendar.getInstance();returncalendar.get(Calendar.MONTH)+1;

}/*** 获得当前年份*/publicstaticintgetToYear() {

Calendar calendar=Calendar.getInstance();returncalendar.get(Calendar.YEAR);

}/*** 返回日期的天*/publicstaticintgetDay(Date date) {

Calendar calendar=Calendar.getInstance();

calendar.setTime(date);returncalendar.get(Calendar.DATE);

}/*** 返回日期的年*/publicstaticintgetYear(Date date) {

Calendar calendar=Calendar.getInstance();

calendar.setTime(date);returncalendar.get(Calendar.YEAR);

}/*** 返回日期的月份,1-12*/publicstaticintgetMonth(Date date) {

Calendar calendar=Calendar.getInstance();

calendar.setTime(date);returncalendar.get(Calendar.MONTH)+1;

}/*** 计算两个日期相差的天数,如果date2 > date1 返回正数,否则返回负数*/publicstaticlongdayDiff(Date date1, Date date2) {return(date2.getTime()-date1.getTime())/86400000;

}/*** 比较两个日期的年差*/publicstaticintyearDiff(String before, String after) {

Date beforeDay=stringtoDate(before, LONG_DATE_FORMAT);

Date afterDay=stringtoDate(after, LONG_DATE_FORMAT);returngetYear(afterDay)-getYear(beforeDay);

}/*** 比较指定日期与当前日期的差*/publicstaticintyearDiffCurr(String after) {

Date beforeDay=newDate();

Date afterDay=stringtoDate(after, LONG_DATE_FORMAT);returngetYear(beforeDay)-getYear(afterDay);

}/*** 比较指定日期与当前日期的差*/publicstaticlongdayDiffCurr(String before) {

Date currDate=DateUtil.stringtoDate(currDay(), LONG_DATE_FORMAT);

Date beforeDate=stringtoDate(before, LONG_DATE_FORMAT);return(currDate.getTime()-beforeDate.getTime())/86400000;

}/*** 获取每月的第一周*/publicstaticintgetFirstWeekdayOfMonth(intyear,intmonth) {

Calendar c=Calendar.getInstance();

c.setFirstDayOfWeek(Calendar.SATURDAY);//星期天为第一天c.set(year, month-1,1);returnc.get(Calendar.DAY_OF_WEEK);

}/*** 获取每月的最后一周*/publicstaticintgetLastWeekdayOfMonth(intyear,intmonth) {

Calendar c=Calendar.getInstance();

c.setFirstDayOfWeek(Calendar.SATURDAY);//星期天为第一天c.set(year, month-1, getDaysOfMonth(year, month));returnc.get(Calendar.DAY_OF_WEEK);

}/*** 获得当前日期字符串,格式"yyyy_MM_dd_HH_mm_ss"

*

*@return*/publicstaticString getCurrent() {

Calendar cal=Calendar.getInstance();

cal.setTime(newDate());intyear=cal.get(Calendar.YEAR);intmonth=cal.get(Calendar.MONTH)+1;intday=cal.get(Calendar.DAY_OF_MONTH);inthour=cal.get(Calendar.HOUR_OF_DAY);intminute=cal.get(Calendar.MINUTE);intsecond=cal.get(Calendar.SECOND);

StringBuffer sb=newStringBuffer();

sb.append(year).append("_").append(StringUtil.addzero(month,2))

.append("_").append(StringUtil.addzero(day,2)).append("_")

.append(StringUtil.addzero(hour,2)).append("_").append(

StringUtil.addzero(minute,2)).append("_").append(

StringUtil.addzero(second,2));returnsb.toString();

}/*** 获得当前日期字符串,格式"yyyy-MM-dd HH:mm:ss"

*

*@return*/publicstaticString getNow() {

Calendar today=Calendar.getInstance();returndateToString(today.getTime(), FORMAT_ONE);

}/*** 判断日期是否有效,包括闰年的情况

*

*@paramdate

*          YYYY-mm-dd

*@return*/publicstaticbooleanisDate(String date) {

StringBuffer reg=newStringBuffer("^((\\d{2}(([02468][048])|([13579][26]))-?((((0?");

reg.append("[13578])|(1[02]))-?((0?[1-9])|([1-2][0-9])|(3[01])))");

reg.append("|(((0?[469])|(11))-?((0?[1-9])|([1-2][0-9])|(30)))|");

reg.append("(0?2-?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][12");

reg.append("35679])|([13579][01345789]))-?((((0?[13578])|(1[02]))");

reg.append("-?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))");

reg.append("-?((0?[1-9])|([1-2][0-9])|(30)))|(0?2-?((0?[");

reg.append("1-9])|(1[0-9])|(2[0-8]))))))");

Pattern p=Pattern.compile(reg.toString());returnp.matcher(date).matches();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值