dateutil 日期计算_较常用的时间工具类DateUtil

importjava.sql.Timestamp;importjava.text.DateFormat;importjava.text.ParseException;importjava.text.ParsePosition;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importjava.util.GregorianCalendar;importjava.util.Locale;importorg.apache.commons.lang.StringUtils;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;

public classDateUtil {public static voidmain(String[] args) {//System.out.println(getStartTime(new Date()));//System.out.println(getEndTime(new Date()));//

//

//System.out.println("获取本月第一天日期:" + getFirstDayTimeOfMonth());//System.out.println("获取本月最后一天日期:" + getLastDayTimeOfMonth());//System.out.println("一周前日期:" + date2String(addDays(-7)));//System.out.println("两天前日期:" + date2String(addDays(-2)));//System.out.println("昨天日期:" + date2String(addDays(-1)));//System.out.println("今天日期:" + date2String(addDays(0)));//System.out.println("明天日期:" + date2String(addDays(1)));//System.out.println("两天后日期:" + date2String(addDays(2)));//System.out.println("一周后日期:" + date2String(addDays(7)));//

//System.out.println("获取当天日期:" + getNowTime("yyyy-MM-dd"));//System.out.println("获取本周一日期:" + getMondayOFWeek());//System.out.println("获取本周日的日期~:" + getCurrentWeekday());//System.out.println("获取上周一日期:" + getPreviousWeekday());//System.out.println("获取上周日日期:" + getPreviousWeekSunday());//System.out.println("获取下周一日期:" + getNextMonday());//System.out.println("获取下周日日期:" + getNextSunday());//System.out.println("获取本月第一天日期:" + getFirstDayOfMonth());//System.out.println("获取本月最后一天日期:" + getDefaultDay());//System.out.println("获取上月第一天日期:" + getPreviousMonthFirst());//System.out.println("获取上月最后一天的日期:" + getPreviousMonthEnd());//System.out.println("获取下月第一天日期:" + getNextMonthFirst());//System.out.println("获取下月最后一天日期:" + getNextMonthEnd());//System.out.println("获取本年的第一天日期:" + getCurrentYearFirst());//System.out.println("获取本年最后一天日期:" + getCurrentYearEnd());//System.out.println("获取去年的第一天日期:" + getPreviousYearFirst());//System.out.println("获取去年的最后一天日期:" + getPreviousYearEnd());//System.out.println("获取明年第一天日期:" + getNextYearFirst());//System.out.println("获取明年最后一天日期:" + getNextYearEnd());//System.out.println("获取本季度第一天到最后一天:" + getThisSeasonTime(11));//System.out.println("获取两个日期之间间隔天数2008-12-1~2008-9.29:" +//getTwoDay("2008-12-1", "2008-9-29"));//System.out.println(getNowTimeStampTime().getTime());

System.out.println(getLongAgoYear());

}private static final Logger logger = LoggerFactory.getLogger(DateUtil.class);//用来全局控制 上一周,本周,下一周的周数变化

private static int weeks = 0;private static int MaxDate;//一月最大天数

private static int MaxYear;//一年最大天数

private static String defaultDatePattern = null;private static String timePattern = "HH:mm";public static final String TS_FORMAT = DateUtil.getDatePattern() + " HH:mm:ss.S";/**日期格式yyyy-MM字符串常量*/

public static final String MONTH_FORMAT = "yyyy-MM";/**日期格式yyyyMM字符串常量*/

public static final String MONTH_FORMAT_SHORT = "yyyyMM";/**日期格式yyyy-MM-dd字符串常量*/

public static final String DATE_FORMAT = "yyyy-MM-dd";public static final String DATE_FORMAT_DIT = "yyyy.MM.dd";/**日期格式yyyyMMdd字符串常量*/

public static final String DATE_FORMAT_SHORT = "yyyyMMdd";/**日期格式yyyyMMddHHmm字符串常量*/

public static final String DATE_FORMAT_LONG = "yyyyMMddHHmm";public static final String DATE_FORMAT_MD = "MMdd";public static final String DATE_FORMAT_CHN_MD = "M月dd日";/**日期格式yyyy MM dd字符串常量*/

public static final String DATE_FORMAT_BANK = "yyyy MM dd";/**日期格式HH:mm:ss字符串常量*/

public static final String HOUR_FORMAT = "HH:mm:ss";/**日期格式yyyy-MM-dd HH:mm:ss字符串常量*/

public static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";/**日期格式yyyy-MM-dd HH:mm:ss字符串常量*/

public static final String DATETIME_FORMAT1 = "yyyy-MM-dd 00:00:00";/**日期格式yyyy-MM-dd HH:mm:ss字符串常量*/

public static final String DATETIME_FORMAT0 = "yyyy-MM-dd 01:00:00";/**日期格式yyyy-MM-dd HH:mm:ss字符串常量*/

public static final String DATETIME_FORMAT2 = "yyyy-MM-dd 23:59:59";/**格式化到小时*/

public static final String HOUR_DATETIME_FORMAT = "yyyy-MM-dd HH";/**日期格式yyyy-MM-dd HH:mm:ss字符串常量*/

public static final String MILLISECOND_DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss.S";/**日期格式yyyy-MM-dd HH:mm:ss字符串常量*/

public static final String MILLI3SECOND_DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS";/**日期格式yyyy-MM-dd HH:mm:ss字符串常量*/

public static final String yyyyMMddHHmmss_FORMAT = "yyyyMMddHHmmss";public static final String yyyyMMddHHmmssSSS_FORMAT = "yyyyMMddHHmmssSSS";/**某天开始时分秒字符串常量 00:00:00*/

public static final String DAY_BEGIN_STRING_HHMMSS = " 00:00:00";/**某天结束时分秒字符串常量 23:59:59*/

public static final String DAY_END_STRING_HHMMSS = " 23:59:59";private static SimpleDateFormat sdf_date_format = newSimpleDateFormat(DATE_FORMAT);private static SimpleDateFormat sdf_date_format_bank = newSimpleDateFormat(DATE_FORMAT_BANK);private static SimpleDateFormat sdf_hour_format = newSimpleDateFormat(HOUR_FORMAT);private static SimpleDateFormat sdf_datetime_format = newSimpleDateFormat(DATETIME_FORMAT);private static SimpleDateFormat sdf_datetime_format2 = newSimpleDateFormat(yyyyMMddHHmmss_FORMAT);public static longcalTowDateOfDay(Date endDate,Date nowDate){long nd = 1000 * 24 * 60 * 60;long diff = endDate.getTime() -nowDate.getTime();//计算差多少天

long day = diff /nd;returnday;

}public static longcalTowDateOfHour(Date endDate,Date nowDate){long nd = 1000 * 24 * 60 * 60;long nh = 1000 * 60 * 60;long diff = endDate.getTime() -nowDate.getTime();//计算差多少小时

long hour = diff % nd /nh;returnhour;

}public static longcalTowDateOfMin(Date endDate,Date nowDate){long nd = 1000 * 24 * 60 * 60;long nh = 1000 * 60 * 60;long nm = 1000 * 60;long diff = endDate.getTime() -nowDate.getTime();//计算差多少分钟

long min = diff % nd % nh /nm;returnmin;

}public static longcalTowDateOfSecond(Date endDate,Date nowDate){long nd = 1000 * 24 * 60 * 60;long nh = 1000 * 60 * 60;long nm = 1000 * 60;long ns = 1000;long diff = endDate.getTime() -nowDate.getTime();//计算差多少分钟

long second = diff % nd % nh % nm /ns;returnsecond;

}public staticString calTime(Date nowDate,Date create_time){

String subTime="";long min = 0;longday;long hour = 0;long second =DateUtil.calTowDateOfSecond(nowDate, create_time);

min=DateUtil.calTowDateOfMin(nowDate, create_time);

hour=DateUtil.calTowDateOfHour(nowDate, create_time);

day=DateUtil.calTowDateOfDay(nowDate, create_time);if (day > 0) {

subTime= day + "天前";

}else if (hour > 0) {

subTime= hour + "小时前";

}else if (min > 0) {

subTime= min + "分钟前";

}else if(second > 0) {

subTime= second + "秒前";

}returnsubTime;

}publicDateUtil() {

}/*** 自定义格式化日期,

*@paramformat

*@paramdate

*@return

*/

public staticString formatDateTime(String format,Date date) {

SimpleDateFormat simpleDateFormat= newSimpleDateFormat(format);try{returnsimpleDateFormat.format(date.getTime());

}catch(Exception e) {

logger.debug("DateUtil.getDateTime():" +e.getMessage());return "";

}

}/*** 获得服务器当前日期及时间,以格式为:yyyy-MM-dd HH:mm:ss的日期字符串形式返回

*

*@authordylan_xu

* @date Mar 11, 2012

*@return

*/

public staticString getDateTime() {try{returnsdf_datetime_format.format(Calendar.getInstance().getTime());

}catch(Exception e) {

logger.debug("DateUtil.getDateTime():" +e.getMessage());return "";

}

}/*** 获得服务器当前日期,以格式为:yyyy-MM-dd的日期字符串形式返回

*

*@authordylan_xu

* @date Mar 11, 2012

*@return

*/

public staticString getDate() {try{returnsdf_date_format.format(Calendar.getInstance().getTime());

}catch(Exception e) {

logger.debug("DateUtil.getDate():" +e.getMessage());return "";

}

}/*** 获得服务器当前日期,以格式为:yyyy MM dd的日期字符串形式返回

*

*@authordylan_xu

* @date Mar 11, 2012

*@return

*/

public staticString getDateWithBank() {try{returnsdf_date_format_bank.format(Calendar.getInstance().getTime());

}catch(Exception e) {

logger.debug("DateUtil.getDateWithBank():" +e.getMessage());return "";

}

}/*** 获得服务器当前时间,以格式为:HH:mm:ss的日期字符串形式返回

*

*@authordylan_xu

* @date Mar 11, 2012

*@return

*/

public staticString getTime() {

String temp= " ";try{

temp+=sdf_hour_format.format(Calendar.getInstance().getTime());returntemp;

}catch(Exception e) {

logger.debug("DateUtil.getTime():" +e.getMessage());return "";

}

}/*** 统计时开始日期的默认值

*

*@authordylan_xu

* @date Mar 11, 2012

*@return

*/

public staticString getStartDate() {try{return getYear() + "-01-01";

}catch(Exception e) {

logger.debug("DateUtil.getStartDate():" +e.getMessage());return "";

}

}/*** 统计时结束日期的默认值

*

*@authordylan_xu

* @date Mar 11, 2012

*@return

*/

public staticString getEndDate() {try{returngetDate();

}catch(Exception e) {

logger.debug("DateUtil.getEndDate():" +e.getMessage());return "";

}

}/*** 获得服务器当前日期的年份

*

*@authordylan_xu

* @date Mar 11, 2012

*@return

*/

public staticString getYear() {try{returnString.valueOf(Calendar.getInstance().get(Calendar.YEAR));

}catch(Exception e) {

logger.debug("DateUtil.getYear():" +e.getMessage());return "";

}

}/*** 获得服务器当前日期的年份

*

*@authordylan_xu

* @date Mar 11, 2012

*@return

*/

public staticDate getLongAgoYear() {

Date date= null;try{

Calendar calendar=Calendar.getInstance();

calendar.set(1900, 0, 0, 00, 00, 00);

date=calendar.getTime();returndate;

}catch(Exception e) {

logger.debug("DateUtil.getYear():" +e.getMessage());return null;

}

}/*** 获得服务器当前日期的月份

*

*@authordylan_xu

* @date Mar 11, 2012

*@return

*/

public staticString getMonth() {try{

java.text.DecimalFormat df= newjava.text.DecimalFormat();

df.applyPattern("00;00");return df.format((Calendar.getInstance().get(Calendar.MONTH) + 1));

}catch(Exception e) {

logger.debug("DateUtil.getMonth():" +e.getMessage());return "";

}

}/*** 获得服务器在当前月中天数

*

*@authordylan_xu

* @date Mar 11, 2012

*@return

*/

public staticString getDay() {try{returnString.valueOf(Calendar.getInstance().get(Calendar.DAY_OF_MONTH));

}catch(Exception e) {

logger.debug("DateUtil.getDay():" +e.getMessage());return "";

}

}/*** 比较两个日期相差的天数

*

*@authordylan_xu

* @date Mar 11, 2012

*@paramdate1

*@paramdate2

*@return

*/

public static intgetMargin(String date1, String date2) {intmargin;try{

ParsePosition pos= new ParsePosition(0);

ParsePosition pos1= new ParsePosition(0);

Date dt1=sdf_date_format.parse(date1, pos);

Date dt2=sdf_date_format.parse(date2, pos1);long l = dt1.getTime() -dt2.getTime();

margin= (int) (l / (24 * 60 * 60 * 1000));returnmargin;

}catch(Exception e) {

logger.debug("DateUtil.getMargin():" +e.toString());return 0;

}

}/*** 比较两个日期相差的天数

*

*@authordylan_xu

* @date Mar 11, 2012

*@paramdate1

*@paramdate2

*@return

*/

public static doublegetDoubleMargin(String date1, String date2) {doublemargin;try{

ParsePosition pos= new ParsePosition(0);

ParsePosition pos1= new ParsePosition(0);

Date dt1=sdf_datetime_format.parse(date1, pos);

Date dt2=sdf_datetime_format.parse(date2, pos1);long l = dt1.getTime() -dt2.getTime();

margin= (l / (24 * 60 * 60 * 1000.00));returnmargin;

}catch(Exception e) {

logger.debug("DateUtil.getMargin():" +e.toString());return 0;

}

}/*** 比较两个日期相差的月数

*

*@authordylan_xu

* @date Mar 11, 2012

*@paramdate1

*@paramdate2

*@return

*/

public static intgetMonthMargin(String date1, String date2) {intmargin;try{

margin= (Integer.parseInt(date2.substring(0, 4)) - Integer.parseInt(date1.substring(0, 4))) * 12;

margin+= (Integer.parseInt(date2.substring(4, 7).replaceAll("-0", "-")) -Integer.parseInt(date1

.substring(4, 7).replaceAll("-0", "-")));returnmargin;

}catch(Exception e) {

logger.debug("DateUtil.getMargin():" +e.toString());return 0;

}

}/*** 返回日期加X天后的日期

*

*@authordylan_xu

* @date Mar 11, 2012

*@paramdate

*@parami

*@return

*/

public static String addDay(String date, inti) {try{

GregorianCalendar gCal= new GregorianCalendar(Integer.parseInt(date.substring(0, 4)),

Integer.parseInt(date.substring(5, 7)) - 1, Integer.parseInt(date.substring(8, 10)));

gCal.add(GregorianCalendar.DATE, i);returnsdf_date_format.format(gCal.getTime());

}catch(Exception e) {

logger.debug("DateUtil.addDay():" +e.toString());returngetDate();

}

}/*** 返回日期加X月后的日期

*

*@authordylan_xu

* @date Mar 11, 2012

*@paramdate

*@parami

*@return

*/

public static String addMonth(String date, inti) {try{

GregorianCalendar gCal= new GregorianCalendar(Integer.parseInt(date.substring(0, 4)),

Integer.parseInt(date.substring(5, 7)) - 1, Integer.parseInt(date.substring(8, 10)));

gCal.add(GregorianCalendar.MONTH, i);returnsdf_date_format.format(gCal.getTime());

}catch(Exception e) {

logger.debug("DateUtil.addMonth():" +e.toString());returngetDate();

}

}/*** 返回日期加X年后的日期

*

*@authordylan_xu

* @date Mar 11, 2012

*@paramdate

*@parami

*@return

*/

public static String addYear(String date, inti) {try{

GregorianCalendar gCal= new GregorianCalendar(Integer.parseInt(date.substring(0, 4)),

Integer.parseInt(date.substring(5, 7)) - 1, Integer.parseInt(date.substring(8, 10)));

gCal.add(GregorianCalendar.YEAR, i);returnsdf_date_format.format(gCal.getTime());

}catch(Exception e) {

logger.debug("DateUtil.addYear():" +e.toString());return "";

}

}/*** 返回某年某月中的最大天

*

*@authordylan_xu

* @date Mar 11, 2012

*@paramyear

*@parammonth

*@return

*/

public static int getMaxDay(int iyear, intimonth) {int day = 0;try{if (imonth == 1 || imonth == 3 || imonth == 5 || imonth == 7 || imonth == 8 || imonth == 10 || imonth == 12) {

day= 31;

}else if (imonth == 4 || imonth == 6 || imonth == 9 || imonth == 11) {

day= 30;

}else if ((0 == (iyear % 4)) && (0 != (iyear % 100)) || (0 == (iyear % 400))) {

day= 29;

}else{

day= 28;

}returnday;

}catch(Exception e) {

logger.debug("DateUtil.getMonthDay():" +e.toString());return 1;

}

}/*** 格式化日期

*

*@authordylan_xu

* @date Mar 11, 2012

*@paramorgDate

*@paramType

*@paramSpan

*@return

*/@SuppressWarnings("static-access")public String rollDate(String orgDate, int Type, intSpan) {try{

String temp= "";intiyear, imonth, iday;int iPos = 0;char seperater = '-';if (orgDate == null || orgDate.length() < 6) {return "";

}

iPos=orgDate.indexOf(seperater);if (iPos > 0) {

iyear= Integer.parseInt(orgDate.substring(0, iPos));

temp= orgDate.substring(iPos + 1);

}else{

iyear= Integer.parseInt(orgDate.substring(0, 4));

temp= orgDate.substring(4);

}

iPos=temp.indexOf(seperater);if (iPos > 0) {

imonth= Integer.parseInt(temp.substring(0, iPos));

temp= temp.substring(iPos + 1);

}else{

imonth= Integer.parseInt(temp.substring(0, 2));

temp= temp.substring(2);

}

imonth--;if (imonth < 0 || imonth > 11) {

imonth= 0;

}

iday=Integer.parseInt(temp);if (iday < 1 || iday > 31)

iday= 1;

Calendar orgcale=Calendar.getInstance();

orgcale.set(iyear, imonth, iday);

temp= this.rollDate(orgcale, Type, Span);returntemp;

}catch(Exception e) {return "";

}

}public static String rollDate(Calendar cal, int Type, intSpan) {try{

String temp= "";

Calendar rolcale;

rolcale=cal;

rolcale.add(Type, Span);

temp=sdf_date_format.format(rolcale.getTime());returntemp;

}catch(Exception e) {return "";

}

}/*** 返回默认的日期格式

*

*@authordylan_xu

* @date Mar 11, 2012

*@return

*/

public static synchronizedString getDatePattern() {

defaultDatePattern=DATETIME_FORMAT;returndefaultDatePattern;

}/*** 将指定日期按默认格式进行格式代化成字符串后输出如:yyyy-MM-dd

*

*@authordylan_xu

* @date Mar 11, 2012

*@paramaDate

*@return

*/

public static finalString getDate(Date aDate) {

SimpleDateFormat df= null;

String returnValue= "";if (aDate != null) {

df= newSimpleDateFormat(getDatePattern());

returnValue=df.format(aDate);

}return(returnValue);

}/*** 取得给定日期的时间字符串,格式为当前默认时间格式

*

*@authordylan_xu

* @date Mar 11, 2012

*@paramtheTime

*@return

*/

public staticString getTimeNow(Date theTime) {returngetDateTime(timePattern, theTime);

}/*** 取得当前时间的Calendar日历对象

*

*@authordylan_xu

* @date Mar 11, 2012

*@return*@throwsParseException*/

public Calendar getToday() throwsParseException {

Date today= newDate();

SimpleDateFormat df= newSimpleDateFormat(getDatePattern());

String todayAsString=df.format(today);

Calendar cal= newGregorianCalendar();

cal.setTime(convertStringToDate(todayAsString));returncal;

}/*** 将日期类转换成指定格式的字符串形式

*

*@authordylan_xu

* @date Mar 11, 2012

*@paramaMask

*@paramaDate

*@return

*/

public static finalString getDateTime(String aMask, Date aDate) {

SimpleDateFormat df= null;

String returnValue= "";if (aDate == null) {

logger.error("aDate is null!");

}else{

df= newSimpleDateFormat(aMask);

returnValue=df.format(aDate);

}return(returnValue);

}/*** 将指定的日期转换成默认格式的字符串形式

*

*@authordylan_xu

* @date Mar 11, 2012

*@paramaDate

*@return

*/

public static finalString convertDateToString(Date aDate) {returngetDateTime(getDatePattern(), aDate);

}/*** 将日期字符串按指定格式转换成日期类型

*

*@authordylan_xu

* @date Mar 11, 2012

*@paramaMask

* 指定的日期格式,如:yyyy-MM-dd

*@paramstrDate

* 待转换的日期字符串

*@return*@throwsParseException*/

public static final Date convertStringToDate(String aMask, String strDate) throwsParseException {

SimpleDateFormat df= null;

Date date= null;

df= newSimpleDateFormat(aMask);if(logger.isDebugEnabled()) {

logger.debug("converting '" + strDate + "' to date with mask '" + aMask + "'");

}try{

date=df.parse(strDate);

}catch(ParseException pe) {

logger.error("ParseException: " +pe);throwpe;

}return(date);

}public static finalString formatDate(String format, String strDate) {

SimpleDateFormat df= null;

Date date= null;

df= newSimpleDateFormat(format);if(logger.isDebugEnabled()) {

logger.debug("converting ".concat(strDate).concat(" to date with mask ").concat(format));

}try{

date=df.parse(strDate);

}catch(Exception e) {

logger.error(e.getMessage(), e);

}returngetDateTime(format,date);

}/*** 将日期字符串按默认格式转换成日期类型

*

*@authordylan_xu

* @date Mar 11, 2012

*@paramstrDate

*@return*@throwsParseException*/

public static Date convertStringToDate(String strDate) throwsParseException {

Date aDate= null;try{if(logger.isDebugEnabled()) {

logger.debug("converting date with pattern: " +getDatePattern());

}

aDate=convertStringToDate(getDatePattern(), strDate);

}catch(ParseException pe) {

logger.error("Could not convert '" + strDate + "' to a date, throwing exception");throw newParseException(pe.getMessage(), pe.getErrorOffset());

}returnaDate;

}/*** 返回一个JAVA简单类型的日期字符串

*

*@authordylan_xu

* @date Mar 11, 2012

*@return

*/

public staticString getSimpleDateFormat() {

SimpleDateFormat formatter= newSimpleDateFormat();

String NDateTime= formatter.format(newDate());returnNDateTime;

}/*** 将指定字符串格式的日期与当前时间比较

*

*@authorDYLAN

* @date Feb 17, 2012

*@paramstrDate

* 需要比较时间

*@return

* int code

*

*

-1 当前时间 < 比较时间

*

0 当前时间 = 比较时间

*

>=1当前时间 > 比较时间

*

*

*/

public static intcompareToCurTime(String strDate) {if(StringUtils.isBlank(strDate)) {return -1;

}

Date curTime=Calendar.getInstance().getTime();

String strCurTime= null;try{

strCurTime=sdf_datetime_format.format(curTime);

}catch(Exception e) {if(logger.isDebugEnabled()) {

logger.debug("[Could not format '" + strDate + "' to a date, throwing exception:"

+ e.getLocalizedMessage() + "]");

}

}if(StringUtils.isNotBlank(strCurTime)) {returnstrCurTime.compareTo(strDate);

}return -1;

}/*** 为查询日期添加最小时间

*

*@param目标类型Date

*@param转换参数Date

*@return

*/@SuppressWarnings("deprecation")public staticDate addStartTime(Date param) {

Date date=param;try{

date.setHours(0);

date.setMinutes(0);

date.setSeconds(0);

Calendar calendar=Calendar.getInstance();

calendar.setTime(date);

calendar.set(Calendar.MILLISECOND,0);returncalendar.getTime();

}catch(Exception ex) {returndate;

}

}/*** 为查询日期添加最大时间

*

*@param目标类型Date

*@param转换参数Date

*@return

*/@SuppressWarnings("deprecation")public staticDate addEndTime(Date param) {

Date date=param;try{

date.setHours(23);

date.setMinutes(59);

date.setSeconds(59);

Calendar calendar=Calendar.getInstance();

calendar.setTime(date);

calendar.set(Calendar.MILLISECOND,999);returncalendar.getTime();

}catch(Exception ex) {returndate;

}

}/*** 返回系统现在年份中指定月份的天数

*

*@param月份month

*@return指定月的总天数*/@SuppressWarnings("deprecation")public static String getMonthLastDay(intmonth) {

Date date= newDate();int[][] day = { { 0, 30, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},

{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} };int year = date.getYear() + 1900;if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {return day[1][month] + "";

}else{return day[0][month] + "";

}

}/*** 返回指定年份中指定月份的天数

*

*@param年份year

*@param月份month

*@return指定月的总天数*/

public static String getMonthLastDay(int year, intmonth) {int[][] day = { { 0, 30, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},

{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} };if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {return day[1][month] + "";

}else{return day[0][month] + "";

}

}/*** 判断是平年还是闰年

*

*@authordylan_xu

* @date Mar 11, 2012

*@paramyear

*@return

*/

public static boolean isLeapyear(intyear) {if ((year % 4 == 0 && year % 100 != 0) || (year % 400) == 0) {return true;

}else{return false;

}

}/*** 取得当前时间的日戳

*

*@authordylan_xu

* @date Mar 11, 2012

*@return

*/@SuppressWarnings("deprecation")public staticString getTimestamp() {

Date date=Calendar.getInstance().getTime();

String timestamp= "" + (date.getYear() + 1900) + date.getMonth() + date.getDate() +date.getMinutes()+ date.getSeconds() +date.getTime();returntimestamp;

}/*** 取得指定时间的日戳

*

*@return

*/@SuppressWarnings("deprecation")public staticString getTimestamp(Date date) {

String timestamp= "" + (date.getYear() + 1900) + date.getMonth() + date.getDate() +date.getMinutes()+ date.getSeconds() +date.getTime();returntimestamp;

}/*** @Title: getStartTime

* @Description: 取某一天的最开始的时分秒

*@paramparam

*@return参数说明

*@returnString 返回类型*/

public staticString getStartTime(Date param) {returnsdf_datetime_format.format(addStartTime(param));

}public staticString getStartTime2(Date param) {returnsdf_datetime_format2.format(addStartTime(param));

}/*** @Title: getEndTime

* @Description: 取某一天的结束时分秒

*@paramparam

*@return参数说明

*@returnString 返回类型*/

public staticString getEndTime(Date param) {returnsdf_datetime_format.format(addEndTime(param));

}public staticString getEndTime2(Date param) {returnsdf_datetime_format2.format(addEndTime(param));

}/*** 获得当前时间,格式yyyy-MM-dd hh:mm:ss

*

*@paramformat

*@return

*/

public staticString getCurrentDate() {returngetCurrentDate(DATETIME_FORMAT);

}/*** 获得当前时间,格式自定义

*

*@paramformat

*@return

*/

public staticString getCurrentDate(String format) {if(StringUtils.isBlank(format)) {

format=DATETIME_FORMAT;

}

Calendar day=Calendar.getInstance();

day.add(Calendar.DATE,0);

SimpleDateFormat sdf= new SimpleDateFormat(format);//"yyyy-MM-dd"

String date =sdf.format(day.getTime());returndate;

}/*** 日期转字符串

*

*@paramdate

*@return

*/

public staticString date2String(Date date) {

SimpleDateFormat sdf= newSimpleDateFormat(DATETIME_FORMAT);returnsdf.format(date);

}/*** 获得昨天时间

*

*@return

*/

public staticString getYesterdayDate() {returngetYesterdayDate(DATETIME_FORMAT);

}/*** 获得昨天时间,格式自定义

*

*@paramformat

*@return

*/

public staticString getYesterdayDate(String format) {if ("".equals(format)) {

format=DATETIME_FORMAT;

}

Calendar day=Calendar.getInstance();

day.add(Calendar.DATE,-1);

SimpleDateFormat sdf= new SimpleDateFormat(format);//"yyyy-MM-dd"

String date =sdf.format(day.getTime());returndate;

}/***@paramdate1

* 需要比较的时间 不能为空(null),需要正确的日期格式 ,如:2009-09-12

*@paramdate2

* 被比较的时间 为空(null)则为当前时间

*@paramstype

* 返回值类型 0为多少天,1为多少个月,2为多少年

*@return举例: compareDate("2009-09-12", null, 0); //比较天

* compareDate("2009-09-12", null, 1);//比较月

* compareDate("2009-09-12", null, 2);//比较年*/

public static int compareDate(String startDay, String endDay, intstype) {int n = 0;

String formatStyle= stype == 1 ? "yyyy-MM" : "yyyy-MM-dd";

endDay= endDay == null ? getCurrentDate("yyyy-MM-dd") : endDay;

DateFormat df= newSimpleDateFormat(formatStyle);

Calendar c1=Calendar.getInstance();

Calendar c2=Calendar.getInstance();try{

c1.setTime(df.parse(startDay));

c2.setTime(df.parse(endDay));

}catch(Exception e3) {

System.out.println("wrong occured");

}//List list = new ArrayList();

while (!c1.after(c2)) { //循环对比,直到相等,n 就是所要的结果//list.add(df.format(c1.getTime()));//这里可以把间隔的日期存到数组中 打印出来

n++;if (stype == 1) {

c1.add(Calendar.MONTH,1); //比较月份,月份+1

} else{

c1.add(Calendar.DATE,1); //比较天数,日期+1

}

}

n= n - 1;if (stype == 2) {

n= (int) n / 365;

}//System.out.println(startDay+" -- "+endDay+" 相差多少"+u[stype]+":"+n);

returnn;

}/*** 判断时间是否符合时间格式*/

public static booleanisDate(String date, String dateFormat) {if (date != null) {

java.text.SimpleDateFormat format= newjava.text.SimpleDateFormat(dateFormat);

format.setLenient(false);try{

format.format(format.parse(date));

}catch(ParseException e) {return false;

}return true;

}return false;

}/*** 实现给定某日期,判断是星期几 date:必须yyyy-MM-dd格式*/

public staticString getWeekday(String date) {

SimpleDateFormat sd= new SimpleDateFormat("yyyy-MM-dd");

SimpleDateFormat sdw= new SimpleDateFormat("E");

Date d= null;try{

d=sd.parse(date);

}catch(ParseException e) {

logger.error(e.getMessage(), e);

}returnsdw.format(d);

}/*** method 将字符串类型的日期转换为一个timestamp(时间戳记java.sql.Timestamp)

*

*@paramdateString

* 需要转换为timestamp的字符串

*@returndataTime timestamp*/

public final staticjava.sql.Timestamp string2Time(String dateString) {

DateFormat dateFormat;

dateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);//设定格式

dateFormat.setLenient(false);

java.util.Date date= null;try{

date=dateFormat.parse(dateString);

}catch(ParseException e) {

logger.error(e.getMessage(), e);

}//java.sql.Timestamp dateTime = new java.sql.Timestamp(date.getTime());

return new java.sql.Timestamp(date.getTime());//Timestamp类型,timeDate.getTime()返回一个long型

}/*** method 将字符串类型的日期转换为一个Date(java.sql.Date)

*

*@paramdateString

* 需要转换为Date的字符串

*@returndataTime Date*/

public final staticjava.sql.Date string2Date(String dateString) {

DateFormat dateFormat;

dateFormat= new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);

dateFormat.setLenient(false);

java.util.Date date= null;try{

date=dateFormat.parse(dateString);

}catch(ParseException e) {

logger.error(e.getMessage(), e);

}//java.sql.Date dateTime = new java.sql.Date(date.getTime());//sql类型

return newjava.sql.Date(date.getTime());

}/*** @Title: string2Date

* @Description:

*@paramdateString

*@paramdf

*@return参数说明

*@returnjava.util.Date 返回类型*/

public final staticjava.util.Date string2Date(String dateString,String df) {

DateFormat dateFormat= newSimpleDateFormat(df, Locale.SIMPLIFIED_CHINESE);

dateFormat.setLenient(false);

java.util.Date date= null;try{

date=dateFormat.parse(dateString);

}catch(ParseException e) {

logger.error(e.getMessage(), e);

}returndate;

}/*** 计算两个日期之间相差的天数

*

*@paramdate1

*@paramdate2

*@return

*/

public static intdaysBetween(Date date1, Date date2) {

Calendar cal=Calendar.getInstance();

cal.setTime(date1);long time1 =cal.getTimeInMillis();

cal.setTime(date2);long time2 =cal.getTimeInMillis();long between_days = (time2 - time1) / (1000 * 3600 * 24);returnInteger.parseInt(String.valueOf(between_days));

}/*** 取得当前日期N天后的日期

*

*@paramdate

*@paramdays

*@return

*/

public static Date addDays(intdays) {

Calendar cal=Calendar.getInstance();

cal.add(Calendar.DAY_OF_MONTH, days);returncal.getTime();

}/*** 取得指定日期N天后的日期

*

*@paramdate

*@paramdays

*@return

*/

public static Date addXDays(Date date, intdays) {

Calendar cal=Calendar.getInstance();

cal.setTime(date);

cal.add(Calendar.DAY_OF_MONTH, days);returncal.getTime();

}//记录考勤, 记录迟到、早退时间

public staticString getState() {

String state= "正常";

DateFormat df= new SimpleDateFormat("HH:mm:ss");

Date d= newDate();try{

Date d1= df.parse("08:00:00");

Date d2=df.parse(df.format(d));

Date d3= df.parse("17:30:00");int t1 = (int) d1.getTime();int t2 = (int) d2.getTime();int t3 = (int) d3.getTime();if (t2

long hour1 = between % (24 * 3600) / 3600;long minute1 = between % 3600 / 60;

state= "迟到 :" + hour1 + "时" + minute1 + "分";

}else if (t2

long hour1 = between % (24 * 3600) / 3600;long minute1 = between % 3600 / 60;

state= "早退 :" + hour1 + "时" + minute1 + "分";

}returnstate;

}catch(Exception e) {returnstate;

}

}/*** 得到二个日期间的间隔天数*/

public staticString getTwoDay(String sj1, String sj2) {

SimpleDateFormat myFormatter= new SimpleDateFormat("yyyy-MM-dd");long day = 0;try{

java.util.Date date=myFormatter.parse(sj1);

java.util.Date mydate=myFormatter.parse(sj2);

day= (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);

}catch(Exception e) {return "";

}return day + "";

}/*** 根据一个日期,返回是星期几的字符串

*

*@paramsdate

*@return

*/

public staticString getWeek(String sdate) {//再转换为时间

Date date =strToDate(sdate);

Calendar c=Calendar.getInstance();

c.setTime(date);//int hour=c.get(Calendar.DAY_OF_WEEK);//hour中存的就是星期几了,其范围 1~7//1=星期日 7=星期六,其他类推

return new SimpleDateFormat("EEEE").format(c.getTime());

}/*** 将短时间格式字符串转换为时间 yyyy-MM-dd

*

*@paramstrDate

*@return

*/

public staticDate strToDate(String strDate) {

SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd");

ParsePosition pos= new ParsePosition(0);

Date strtodate=formatter.parse(strDate, pos);returnstrtodate;

}/*** 两个时间之间的天数

*

*@paramdate1

*@paramdate2

*@return

*/

public static longgetDays(String date1, String date2) {if (date1 == null || date1.equals(""))return 0;if (date2 == null || date2.equals(""))return 0;//转换为标准时间

SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");

java.util.Date date= null;

java.util.Date mydate= null;try{

date=myFormatter.parse(date1);

mydate=myFormatter.parse(date2);

}catch(Exception e) {

}long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);returnday;

}//计算当月最后一天,返回字符串

public staticString getDefaultDay() {

String str= "";

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate=Calendar.getInstance();

lastDate.set(Calendar.DATE,1);//设为当前月的1号

lastDate.add(Calendar.MONTH, 1);//加一个月,变为下月的1号

lastDate.add(Calendar.DATE, -1);//减去一天,变为当月最后一天

str=sdf.format(lastDate.getTime());returnstr;

}//计算当月最后一天,返回字符串

public staticString getLastDayTimeOfMonth() {

String str= "";

SimpleDateFormat sdf= newSimpleDateFormat(DATETIME_FORMAT);

Calendar lastDate=Calendar.getInstance();

lastDate.set(Calendar.DATE,1);//设为当前月的1号

lastDate.add(Calendar.MONTH, 1);//加一个月,变为下月的1号

lastDate.add(Calendar.DATE, -1);//减去一天,变为当月最后一天

lastDate.set(Calendar.HOUR_OF_DAY, 23);

lastDate.set(Calendar.MINUTE,59);

lastDate.set(Calendar.SECOND,59);

str=sdf.format(lastDate.getTime());returnstr;

}//计算当月最后一天,返回字符串

public staticString getLastDayTimeOfMonth2() {

String str= "";

SimpleDateFormat sdf= newSimpleDateFormat(yyyyMMddHHmmss_FORMAT);

Calendar lastDate=Calendar.getInstance();

lastDate.set(Calendar.DATE,1);//设为当前月的1号

lastDate.add(Calendar.MONTH, 1);//加一个月,变为下月的1号

lastDate.add(Calendar.DATE, -1);//减去一天,变为当月最后一天

lastDate.set(Calendar.HOUR_OF_DAY, 23);

lastDate.set(Calendar.MINUTE,59);

lastDate.set(Calendar.SECOND,59);

str=sdf.format(lastDate.getTime());returnstr;

}//上月第一天

public staticString getPreviousMonthFirst() {

String str= "";

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate=Calendar.getInstance();

lastDate.set(Calendar.DATE,1);//设为当前月的1号

lastDate.add(Calendar.MONTH, -1);//减一个月,变为下月的1号//lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天

str=sdf.format(lastDate.getTime());returnstr;

}//获取当月第一天

public staticString getFirstDayOfMonth() {

String str= "";

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate=Calendar.getInstance();

lastDate.set(Calendar.DATE,1);//设为当前月的1号

str =sdf.format(lastDate.getTime());returnstr;

}public staticString getFirstDayTimeOfMonth() {

String str= "";

SimpleDateFormat sdf= newSimpleDateFormat(DATETIME_FORMAT);

Calendar lastDate=Calendar.getInstance();

lastDate.set(Calendar.DATE,1);//设为当前月的1号

lastDate.set(Calendar.HOUR_OF_DAY, 0);

lastDate.set(Calendar.MINUTE,0);

lastDate.set(Calendar.SECOND,0);

str=sdf.format(lastDate.getTime());returnstr;

}public staticString getFirstDayTimeOfMonth2() {

String str= "";

SimpleDateFormat sdf= newSimpleDateFormat(yyyyMMddHHmmss_FORMAT);

Calendar lastDate=Calendar.getInstance();

lastDate.set(Calendar.DATE,1);//设为当前月的1号

lastDate.set(Calendar.HOUR_OF_DAY, 0);

lastDate.set(Calendar.MINUTE,0);

lastDate.set(Calendar.SECOND,0);

str=sdf.format(lastDate.getTime());returnstr;

}//获得本周星期日的日期

public staticString getCurrentWeekday() {

weeks= 0;int mondayPlus =getMondayPlus();

GregorianCalendar currentDate= newGregorianCalendar();

currentDate.add(GregorianCalendar.DATE, mondayPlus+ 6);

Date monday=currentDate.getTime();

DateFormat df=DateFormat.getDateInstance();

String preMonday=df.format(monday);returnpreMonday;

}//获取当天时间

public staticString getNowTime(String dateformat) {

Date now= newDate();

SimpleDateFormat dateFormat= new SimpleDateFormat(dateformat);//可以方便地修改日期格式

String hehe =dateFormat.format(now);returnhehe;

}//获得当前日期与本周日相差的天数

public static intgetMondayPlus() {

Calendar cd=Calendar.getInstance();//获得今天是一周的第几天,星期日是第一天,星期二是第二天......

int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) - 1; //因为按中国礼拜一作为第一天所以这里减1

if (dayOfWeek == 1) {return 0;

}else{return 1 -dayOfWeek;

}

}//获得本周一的日期

public staticString getMondayOFWeek() {

weeks= 0;int mondayPlus =getMondayPlus();

GregorianCalendar currentDate= newGregorianCalendar();

currentDate.add(GregorianCalendar.DATE, mondayPlus);

Date monday=currentDate.getTime();

DateFormat df=DateFormat.getDateInstance();

String preMonday=df.format(monday);returnpreMonday;

}//获得相应周的周六的日期

public staticString getSaturday() {int mondayPlus =getMondayPlus();

GregorianCalendar currentDate= newGregorianCalendar();

currentDate.add(GregorianCalendar.DATE, mondayPlus+ 7 * weeks + 6);

Date monday=currentDate.getTime();

DateFormat df=DateFormat.getDateInstance();

String preMonday=df.format(monday);returnpreMonday;

}//获得上周星期日的日期

public staticString getPreviousWeekSunday() {

weeks= 0;

weeks--;int mondayPlus =getMondayPlus();

GregorianCalendar currentDate= newGregorianCalendar();

currentDate.add(GregorianCalendar.DATE, mondayPlus+weeks);

Date monday=currentDate.getTime();

DateFormat df=DateFormat.getDateInstance();

String preMonday=df.format(monday);returnpreMonday;

}//获得上周星期一的日期

public staticString getPreviousWeekday() {

weeks--;int mondayPlus =getMondayPlus();

GregorianCalendar currentDate= newGregorianCalendar();

currentDate.add(GregorianCalendar.DATE, mondayPlus+ 7 *weeks);

Date monday=currentDate.getTime();

DateFormat df=DateFormat.getDateInstance();

String preMonday=df.format(monday);returnpreMonday;

}//获得下周星期一的日期

public staticString getNextMonday() {

weeks++;int mondayPlus =getMondayPlus();

GregorianCalendar currentDate= newGregorianCalendar();

currentDate.add(GregorianCalendar.DATE, mondayPlus+ 7);

Date monday=currentDate.getTime();

DateFormat df=DateFormat.getDateInstance();

String preMonday=df.format(monday);returnpreMonday;

}//获得下周星期日的日期

public staticString getNextSunday() {int mondayPlus =getMondayPlus();

GregorianCalendar currentDate= newGregorianCalendar();

currentDate.add(GregorianCalendar.DATE, mondayPlus+ 7 + 6);

Date monday=currentDate.getTime();

DateFormat df=DateFormat.getDateInstance();

String preMonday=df.format(monday);returnpreMonday;

}public static intgetMonthPlus() {

Calendar cd=Calendar.getInstance();int monthOfNumber =cd.get(Calendar.DAY_OF_MONTH);

cd.set(Calendar.DATE,1);//把日期设置为当月第一天

cd.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天

MaxDate =cd.get(Calendar.DATE);if (monthOfNumber == 1) {return -MaxDate;

}else{return 1 -monthOfNumber;

}

}//获得上月最后一天的日期

public staticString getPreviousMonthEnd() {

String str= "";

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate=Calendar.getInstance();

lastDate.add(Calendar.MONTH,-1);//减一个月

lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天

lastDate.roll(Calendar.DATE, -1);//日期回滚一天,也就是本月最后一天

str =sdf.format(lastDate.getTime());returnstr;

}//获得下个月第一天的日期

public staticString getNextMonthFirst() {

String str= "";

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate=Calendar.getInstance();

lastDate.add(Calendar.MONTH,1);//减一个月

lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天

str =sdf.format(lastDate.getTime());returnstr;

}//获得下个月最后一天的日期

public staticString getNextMonthEnd() {

String str= "";

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate=Calendar.getInstance();

lastDate.add(Calendar.MONTH,1);//加一个月

lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天

lastDate.roll(Calendar.DATE, -1);//日期回滚一天,也就是本月最后一天

str =sdf.format(lastDate.getTime());returnstr;

}//获得明年最后一天的日期

public staticString getNextYearEnd() {

String str= "";

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate=Calendar.getInstance();

lastDate.add(Calendar.YEAR,1);//加一个年

lastDate.set(Calendar.DAY_OF_YEAR, 1);

lastDate.roll(Calendar.DAY_OF_YEAR,-1);

str=sdf.format(lastDate.getTime());returnstr;

}//获得明年第一天的日期

public staticString getNextYearFirst() {

String str= "";

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate=Calendar.getInstance();

lastDate.add(Calendar.YEAR,1);//加一个年

lastDate.set(Calendar.DAY_OF_YEAR, 1);

str=sdf.format(lastDate.getTime());returnstr;

}//获得本年有多少天

public static intgetMaxYear() {

Calendar cd=Calendar.getInstance();

cd.set(Calendar.DAY_OF_YEAR,1);//把日期设为当年第一天

cd.roll(Calendar.DAY_OF_YEAR, -1);//把日期回滚一天。

int MaxYear =cd.get(Calendar.DAY_OF_YEAR);returnMaxYear;

}public static intgetYearPlus() {

Calendar cd=Calendar.getInstance();int yearOfNumber = cd.get(Calendar.DAY_OF_YEAR);//获得当天是一年中的第几天

cd.set(Calendar.DAY_OF_YEAR, 1);//把日期设为当年第一天

cd.roll(Calendar.DAY_OF_YEAR, -1);//把日期回滚一天。

int MaxYear =cd.get(Calendar.DAY_OF_YEAR);if (yearOfNumber == 1) {return -MaxYear;

}else{return 1 -yearOfNumber;

}

}//获得本年第一天的日期

public staticString getCurrentYearFirst() {int yearPlus =getYearPlus();

GregorianCalendar currentDate= newGregorianCalendar();

currentDate.add(GregorianCalendar.DATE, yearPlus);

Date yearDay=currentDate.getTime();

DateFormat df=DateFormat.getDateInstance();

String preYearDay=df.format(yearDay);returnpreYearDay;

}//获得本年最后一天的日期 *

public staticString getCurrentYearEnd() {

Date date= newDate();

SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy");//可以方便地修改日期格式

String years =dateFormat.format(date);return years + "-12-31";

}//获得上年第一天的日期 *

public staticString getPreviousYearFirst() {

Date date= newDate();

SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy");//可以方便地修改日期格式

String years =dateFormat.format(date);int years_value =Integer.parseInt(years);

years_value--;return years_value + "-1-1";

}//获得上年最后一天的日期

public staticString getPreviousYearEnd() {

weeks--;int yearPlus =getYearPlus();

GregorianCalendar currentDate= newGregorianCalendar();

currentDate.add(GregorianCalendar.DATE, yearPlus+ MaxYear * weeks + (MaxYear - 1));

Date yearDay=currentDate.getTime();

DateFormat df=DateFormat.getDateInstance();

String preYearDay=df.format(yearDay);

getThisSeasonTime(11);returnpreYearDay;

}//获得本季度

public static String getThisSeasonTime(intmonth) {int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12} };int season = 1;if (month >= 1 && month <= 3) {

season= 1;

}if (month >= 4 && month <= 6) {

season= 2;

}if (month >= 7 && month <= 9) {

season= 3;

}if (month >= 10 && month <= 12) {

season= 4;

}int start_month = array[season - 1][0];int end_month = array[season - 1][2];

Date date= newDate();

SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy");//可以方便地修改日期格式

String years =dateFormat.format(date);int years_value =Integer.parseInt(years);int start_days = 1;//years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);

int end_days =getLastDayOfMonth(years_value, end_month);

String seasonDate= years_value + "-" + start_month + "-" + start_days + ";" + years_value + "-" +end_month+ "-" +end_days;returnseasonDate;

}/*** 获取某年某月的最后一天

*

*@paramyear

* 年

*@parammonth

* 月

*@return最后一天*/

public static int getLastDayOfMonth(int year, intmonth) {if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {return 31;

}if (month == 4 || month == 6 || month == 9 || month == 11) {return 30;

}if (month == 2) {if(isLeapYear(year)) {return 29;

}else{return 28;

}

}return 0;

}/*** 是否闰年

*

*@paramyear

* 年

*@return

*/

public static boolean isLeapYear(intyear) {return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);

}/***

* @Title: getNowTimeStampTime

* @Description: 获取当前时间(TimeStamp类型的)

*@return*@returnTimestamp

*@throws

*/

public staticTimestamp getNowTimeStampTime() {

Timestamp time= newTimestamp(System.currentTimeMillis());returntime;

}/***

* @Title: calcTwoTimeDifferInOneHour

* @Description: 计算最后一次访问时间距离现在时间是不是在1小时之内。

*@paramlastestVisitTime

* 最后一次访问的毫秒时间

*@paramnowTime

* 现在的毫秒时间

*@returnvoid

*@throws

*/

public static booleancalcTwoTimeDifferInOneHour(Long lastestVisitTime, Long nowTime) {long differ = nowTime - lastestVisitTime;//两个时间的毫秒差

long differHour = differ / (60 * 60 * 1000);if (differHour < 1) {return true;

}return false;

}/*** @Title: compareDate

* @Description: 比较时间大小(第一个时间在第二个时间之前返回-1;第一个时间在第二个时间之后返回1,相同返回0)

*@paramdt1

*@paramdt2

*@return参数说明

*@returnint 返回类型*/

public static intcompareDate(Date dt1, Date dt2) {try{if (dt1.getTime() >dt2.getTime()) {return 1;

}else if (dt1.getTime()

}else{return 0;

}

}catch(Exception e) {

logger.error(e.getMessage(), e);

}return 0;

}public staticString getPreviousMonth(String dateFormat) {

String str= "";

SimpleDateFormat sdf= newSimpleDateFormat(dateFormat);

Calendar lastDate=Calendar.getInstance();

lastDate.add(Calendar.MONTH,-1);

str=sdf.format(lastDate.getTime());returnstr;

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值