操作日期的基础类

import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import org.apache.commons.logging.Log;

/**
* 2005-7-26 14:41:31
*/
public class DateUtility {
// private static Log log = LogUtil.getLoger(DateUtility.class);
private static final long ONE_DAY = 86400000l;

/**
* 获取当前日期字符串 格式为YYYY-MM-DD
*
* @return java.lang.String
*/
public static String getCurrentDate() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String s = df.format(new Date());
return s;
}
/**
* 得到当前年,格式如:2008
* @return
*/
public static String getCurrentYear() {
SimpleDateFormat df = new SimpleDateFormat("yyyy");
String s = df.format(new Date());
return s;
}
/**
* 得到当前月,格式如:02
* @return
*/
public static String getCurrentMonth() {
SimpleDateFormat df = new SimpleDateFormat("MM");
String s = df.format(new Date());
return s;
}

public static String getDayInWeek(String sDate) {
Date date = strToDate(sDate);
SimpleDateFormat df = new SimpleDateFormat("EEE");
String s = df.format(date);
return s;
}
/**
* 返回日期类型
* @param str
* @return
*/
public static Date strToDate(String str) {
Date date = null;
if (str != null) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
date = df.parse(str);
} catch (ParseException e) {
//log.error("DateParse Error!");
}
}
return date;
}
/**
* 返回日期类型
* @param str
* @return
*/
public static Date strToDateTime(String str) {
Date date = null;
if (str != null) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
date = df.parse(str);
} catch (ParseException e) {
//log.error("DateParse Error!");
}
}
return date;
}

public static String dateTimeToStr(Date date) {
String str = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (date != null) {
str = df.format(date);
}
return str;
}

public static String dateToStr(Date date) {
String str = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
if (date != null) {
str = df.format(date);
}
return str;
}

/**
* 转化成中文类型的日期
* @param date
* @return
*/
public static String dateToStrCh(Date date) {
String str = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
if (date != null) {
str = df.format(date);
}
return str;
}

/**
* 在原有的日期上面加i天
* @param date
* @param i
* @return
*/
public static Date add(Date date, int i) {
date = new Date(date.getTime() + i * ONE_DAY);
return date;
}

/**
* 加1天
* @param date
* @return
*/
public static Date add(Date date) {
return add(date, 1);
}

/**
* 减1天
* @param date
* @return
*/
public static Date sub(Date date) {
return add(date, -1);
}

public static String getBeforeDate() {
Date date = DateUtility.sub(new Date());
return DateUtility.dateToStr(date);

}
/**
* 得到当前时间,格式:yyyy-MM-dd HH:mm:ss
* @return
*/
public static String getCurrentDateTime() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = df.format(new Date());
return s;
}
/**
* 得到当前时间(星期),格式:yyyy年MM月dd日 EEE
* @return
*/
public static String getCurrentDateWeek() {
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 EEE");
String s = df.format(new Date());
return s;

}
/**
* 得到当前时间(星期),格式:EEE, d MMM yyyy
* @return
*/
public static String getCurrentDateWeekEn() {
SimpleDateFormat df = new SimpleDateFormat("EEE, d MMM yyyy ",
new Locale("en"));
String s = df.format(new Date());
return s;

}

/**
* 返回月份之间的差。
* @param startYear
* @param startMonth
* @param endYear
* @param endMonth
* @return
*/
public static int compareMonth(String startYear, String startMonth,
String endYear, String endMonth) {
return (Integer.parseInt(endYear) - Integer.parseInt(startYear)) * 12
+ (Integer.parseInt(endMonth) - Integer.parseInt(startMonth));

}

/**
*
* @param sDate
* @return
*/
public static String getYearMonth(String sDate) {
Date date1 = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String s = null;
try {
date1 = df.parse(sDate);
df.applyPattern("yyMM");
s = df.format(date1);
} catch (ParseException e) {
return s;
}
return s;
}

/**
*
* @param date
* @return
*/
public static String getYearMonth(Date date) {
SimpleDateFormat df = new SimpleDateFormat("yyMM");
String s = null;

s = df.format(date);

return s;

}

public static String getMonthDay(Date date) {
SimpleDateFormat df = new SimpleDateFormat("MM月dd日");
String s = null;

s = df.format(date);

return s;

}

public static String getYearMonthDay(String sDate) {
Date date1 = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String s = null;
try {
date1 = df.parse(sDate);
df.applyPattern("yyMMdd");
s = df.format(date1);
} catch (ParseException e) {
return s;
}
return s;
}

public static String getStartQueryTime(String date) {
return DateUtility.dateToStr(DateUtility.strToDate(date)) + " 00:00:00";
}

public static String getEndQueryTime(String date) {
return DateUtility.dateToStr(DateUtility.strToDate(date)) + " 23:59:59";
}

/**
*
* @param sDate
* @return
*/
public static String getMonth(String sDate) {
Date date1 = null;
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String s = null;
try {
date1 = df.parse(sDate);
df.applyPattern("MM");
s = df.format(date1);
} catch (ParseException e) {
return s;
}
return s;

}

/**
*
* @param sDate1
* @param sDate2
* @return
*/
public static int compareDate(String sDate1, String sDate2) {

Date date1 = null;
Date date2 = null;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

try {
date1 = dateFormat.parse(sDate1);
date2 = dateFormat.parse(sDate2);
} catch (ParseException e) {

}

long dif = 0;
if (date2.after(date1))
dif = (date2.getTime() - date1.getTime()) / 1000 / 60 / 60 / 24;
else
dif = (date1.getTime() - date2.getTime()) / 1000 / 60 / 60 / 24;

return (int) dif;
}

public static int getDate(String sDate, String sTag) {
int iSecondMinusPos = sDate.lastIndexOf('-');
if (sTag.equalsIgnoreCase("y")) {
return Integer.parseInt(sDate.substring(0, 4));
} else if (sTag.equalsIgnoreCase("m")) {
return Integer.parseInt(sDate.substring(5, iSecondMinusPos));
} else
return Integer.parseInt(sDate.substring(iSecondMinusPos + 1));
}

public static int getDayOfWeek() {

Calendar toDay = Calendar.getInstance();

toDay.setFirstDayOfWeek(Calendar.MONDAY);

int ret = toDay.get(Calendar.DAY_OF_WEEK) - 1;

if (ret == 0) {
ret = 7;
}

return ret;
}

public static String getFirstDayOfMonth() {
Calendar ca = Calendar.getInstance();
ca.setTime(new Date()); // someDate 为你要获取的那个月的时间
ca.set(Calendar.DAY_OF_MONTH, 1);
Date firstDate = ca.getTime();
ca.add(Calendar.MONTH, 1);
ca.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = ca.getTime();
return dateToStr(firstDate);

}
public static String getFirstDayOfMonth(java.util.Calendar ca) {
// Calendar ca = Calendar.getInstance();
// ca.setTime(new Date()); // someDate 为你要获取的那个月的时间
ca.set(Calendar.DAY_OF_MONTH, 1);
Date firstDate = ca.getTime();
ca.add(Calendar.MONTH, 1);
ca.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = ca.getTime();
return dateToStr(firstDate);

}
/**
* @author 包忠华
* @description 获取当前时间的下一年
* @return String
*/
public static String getNextYearDate() {
Calendar ca = Calendar.getInstance();
ca.setTime(new Date()); // someDate 为你要获取的那个月的时间
ca.set(Calendar.DAY_OF_MONTH, 1);
ca.add(Calendar.YEAR, 1);
ca.add(Calendar.MONTH, 1);
ca.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = ca.getTime();
return dateToStr(lastDate);
}
public static String getNextYearDateBystr(String str) {
Date d=DateUtility.strToDate(str);
Calendar ca = Calendar.getInstance();
ca.setTime(d);
ca.set(Calendar.DAY_OF_MONTH, 1);
ca.add(Calendar.YEAR, 1);
ca.add(Calendar.MONTH, 1);
ca.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = ca.getTime();
return dateToStr(lastDate);
}
public static String getLastDayOfMonth() {
Calendar ca = Calendar.getInstance();
ca.setTime(new Date()); // someDate 为你要获取的那个月的时间
ca.set(Calendar.DAY_OF_MONTH, 1);
Date firstDate = ca.getTime();
ca.add(Calendar.MONTH, 1);
ca.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = ca.getTime();
return dateToStr(lastDate);
}
public static String getLastDayOfMonth(Calendar ca) {
// Calendar ca = Calendar.getInstance();
// ca.setTime(new Date()); // someDate 为你要获取的那个月的时间
ca.set(Calendar.DAY_OF_MONTH, 1);
Date firstDate = ca.getTime();
ca.add(Calendar.MONTH, 1);
ca.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = ca.getTime();
return dateToStr(lastDate);
}

public static String getDayInWeek() {
Calendar ca = Calendar.getInstance();
ca.setTime(new Date());
String ret = String.valueOf(ca.get(Calendar.DAY_OF_WEEK) - 1);
return ret;

}



public static String getYearAndMonths(Date date) {
SimpleDateFormat df = new SimpleDateFormat("yy-MM");
String s = null;

s = df.format(date);

return s;

}
public static String getYearAndMonth(Date date) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM");
String s = null;

s = df.format(date);

return s;

}
public final static Timestamp getTimeOfStr ( String dateStr ) {
DateFormat df = new SimpleDateFormat ( "yyyy-MM" );
Timestamp time = null;
try {
java.util.Date da = df.parse ( dateStr );
time = new Timestamp ( da.getTime () );
}
catch ( Exception e ) {
e.printStackTrace ();
}
return time;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值