java date 工具类_Java中DateUtil工具类(持续更新中)

importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importjava.util.GregorianCalendar;importorg.apache.commons.lang3.StringUtils;public classDateUtil {/*** 日期格式 年 如2009*/

public static final String DATEFORMATYEAR = "yyyy";/*** 日期格式 年 月 如 2009-02*/

public static final String DATEFORMATMONTH = "yyyy-MM";/*** 日期格式 年 月 日 如2009-02-26*/

public static final String DATEFORMATDAY = "yyyy-MM-dd";/*** 日期格式 年 月 日 时 如2009-02-26 15*/

public static final String DATEFORMATHOUR = "yyyy-MM-dd HH";/*** 日期格式 年 月 日 时 分 如2009-02-26 15:40*/

public static final String DATEFORMATMINUTE = "yyyy-MM-dd HH:mm";/*** 日期格式年 月 日 时 分 秒 如 2009-02-26 15:40:00*/

public static final String DATEFORMATSECOND = "yyyy-MM-dd HH:mm:ss";/*** 日期格式年 月 日 时 分 秒 毫秒 如2009-02-26 15:40:00 110*/

public static final String DATEFORMATMILLISECOND = "yyyy-MM-dd HH:mm:ss SSS";/*** 返回日期 根据数据库类型 str_to_date to_date 精确到秒

*

*@return

*/

public staticString str_to_date_second(String dataStr) {

String ret= "";//if (Constant.DATABASETYPE.equalsIgnoreCase("oracle")) {//Oracle数据库//ret += " to_date('" + dataStr + "','yyyy-MM-dd hh24:mi:ss') ";//} else {//MySQL数据库

ret += " str_to_date('" + dataStr + "','%Y-%m-%d %H:%i:%s') ";//}

returnret;

}/*** 返回日期 根据数据库类型 str_to_date to_date 精确到分

*

*@return

*/

public staticString str_to_date_minute(String dataStr) {

String ret= "";//if (Constant.DATABASETYPE.equalsIgnoreCase("oracle")) {//Oracle数据库//ret += " to_date('" + dataStr + "','yyyy-MM-dd hh24:mi') ";//} else {//MySQL数据库

ret += " str_to_date('" + dataStr + "','%Y-%m-%d %H:%i') ";//}

returnret;

}/*** 按指定的格式,把Date转换成String 如date为null,返回null

*

*@paramdate

* Date参数

*@paramformat

* 日期格式

*@returnString*/

public staticString format(Date date, String format) {if (date == null) {return null;

}return newSimpleDateFormat(format).format(date);

}/*** 按指定的格式,把string转换成Date 如string为空或null,返回null

*

*@paramstring

*@paramformat

*@return*@throwsParseException*/

public static Date parase(String string, String format) throwsParseException {if(StringUtils.isEmpty(string)) {return null;

}return newSimpleDateFormat(format).parse(string);

}/*** 按年月日格式,把String转换成Date 如果String为空或者null,返回null

*@paramdateString

*@return*@throwsParseException*/

public static Date string2Date(String dateString) throwsParseException {

Date dateTime= null;if (!StringUtils.isEmpty(dateString)) { //如果string时间参数不是空

final SimpleDateFormat df = new SimpleDateFormat(DATEFORMATDAY); //年月日时间格式化

Date date = null;

date= df.parse(dateString); //String转换Date

dateTime = newDate(date.getTime());

}returndateTime;

}/*** 获取当前系统时间

*

*@return

*/

public staticDate getSysDate() {

Calendar calender=Calendar.getInstance();returncalender.getTime();

}/*** 取一天的开始时间 精确到秒 如果date为null,返回null

*

*@paramdate

*@return*@throwsException*/

public staticString getDayFirstSecond(Date date) {if (date == null) {return null;

}

String str= format(date, DATEFORMATDAY) + " 00:00:00";returnstr;

}/*** 取一天的开始时间 精确到秒 如果string为"",返回null

*

*@paramstring

*@return*@throwsException*/

public staticString getDayFirstSecond(String date) {if (date.equals("")) {return null;

}

String ret= "";try{

ret=getDayFirstSecond(string2Date(date));

}catch(ParseException e) {//TODO Auto-generated catch block

e.printStackTrace();

}returnret;

}/*** 取一天的结束时间 精确到秒 如果date为null,返回null

*

*@paramdate

*@return*@throwsException*/

public staticString getDayLastSecond(Date date) {if (date == null) {return null;

}final String str = format(date, DATEFORMATDAY) + " 23:59:59";returnstr;

}/*** 取一天的结束时间 精确到秒 如果string为"",返回null

*

*@paramstring

*@return*@throwsException*/

public staticString getDayLastSecond(String date) {if (date.equals("")) {return null;

}

String ret= "";try{

ret=getDayLastSecond(string2Date(date));

}catch(ParseException e) {//TODO Auto-generated catch block

e.printStackTrace();

}returnret;

}/*** 取一天的开始时间 精确到毫秒

*

*@paramdate

*@return*@throwsException*/

public static Date getDayFirstTime(Date date) throwsException {if (date == null) {return null;

}final String str = format(date, DATEFORMATDAY) + " 00:00:00 000";returnparase(str, DATEFORMATMILLISECOND);

}/*** 取一天的结束时间 精确到毫秒

*

*@paramdate

*@return*@throwsException*/

public static Date getDayLastTime(java.util.Date date) throwsException {if (date == null) {return null;

}final String str = format(date, DATEFORMATDAY) + " 23:59:59 999";returnparase(str, DATEFORMATMILLISECOND);

}/*** 获取昨天的日期

*

*@paramstrDate

*@return*@throwsParseException

*@throwsException*/

public static Date getYestoday(String strDate) throwsParseException {if (null != strDate && strDate.length() > 0) {final GregorianCalendar cal = newGregorianCalendar();

cal.setTime(parase(strDate, DATEFORMATDAY));

cal.add(Calendar.DAY_OF_MONTH,-1);final String str =format(cal.getTime(), DATEFORMATDAY);returnparase(str, DATEFORMATDAY);

}return null;

}/*** 获取明天的日期

*

*@paramstrDate

*@return*@throwsParseException

*@throwsException*/

public static Date getTomorrow() throwsParseException {final GregorianCalendar cal = newGregorianCalendar();

cal.setTime(getSysDate());

cal.add(Calendar.DAY_OF_MONTH,1);final String str =format(cal.getTime(), DATEFORMATDAY);returnparase(str, DATEFORMATDAY);

}/*** 获取指定日期下一天的日期

*

*@paramstrDate

*@return*@throwsParseException

*@throwsException*/

public static Date getNextDay(Date someDate) throwsParseException {final Calendar ca =Calendar.getInstance();

ca.setTime(someDate);

ca.add(Calendar.DAY_OF_MONTH,1);final String str =format(ca.getTime(), DATEFORMATDAY);returnparase(str, DATEFORMATDAY);

}/*** 根据当前日期返回本月的最后一天

*

*@paramsomeDate

*@return

*/

public staticDate getLastDayOfMonth(Date someDate) {final Calendar ca =Calendar.getInstance();

ca.setTime(someDate);//someDate 为你要获取的那个月的时间

ca.set(Calendar.DAY_OF_MONTH, 1);

ca.add(Calendar.MONTH,1);

ca.add(Calendar.DAY_OF_MONTH,-1);returnca.getTime();

}/*** 得到本月最后一天的日期*/

public static Date getLastDayOfMonth(String dateStr) throwsParseException {

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

Date date=sdf.parse(dateStr);

Calendar ca=Calendar.getInstance();

ca.setTime(date);

ca.set(Calendar.DAY_OF_MONTH,1);

ca.add(Calendar.MONTH,1);

ca.add(Calendar.DAY_OF_MONTH,-1);returnca.getTime();

}/*** 当前日期 yyyy-MM-dd

*

*@return

*/

public staticString getToday() {

Calendar ca=Calendar.getInstance();

String str=format(ca.getTime(), DATEFORMATDAY);returnstr;

}/*** 当前日期上个月 yyyy-MM-dd

*

*@return

*/

public staticString getLastMonthToday() {

Calendar ca=Calendar.getInstance();

ca.set(Calendar.MONTH, ca.get(Calendar.MONTH)- 1);

String str=format(ca.getTime(), DATEFORMATDAY);returnstr;

}/*** 当前日期上个星期yyyy-MM-dd

*

*@return

*/

public staticString getLastWeekToday() {

Calendar ca=Calendar.getInstance();

ca.add(Calendar.DAY_OF_MONTH,-7);

String str=format(ca.getTime(), DATEFORMATDAY);returnstr;

}/*** 当前日期 yyyy-MM-dd HH:mm:ss

*

*@return

*/

public staticString getTodayToSecond() {

Calendar ca=Calendar.getInstance();

String str=format(ca.getTime(), DATEFORMATSECOND);returnstr;

}/*** 当前日期-月 yyyy-MM-dd HH:mm:ss

*

*@return

*/

public staticString getLastMonthTodayToSecond() {

Calendar ca=Calendar.getInstance();

ca.set(Calendar.MONTH, ca.get(Calendar.MONTH)- 1);

String str=format(ca.getTime(), DATEFORMATSECOND);returnstr;

}/*** 当前日期-一周 yyyy-MM-dd HH:mm:ss

*

*@return

*/

public staticString getLastWeekTodayToSecond() {

Calendar ca=Calendar.getInstance();

ca.add(Calendar.DAY_OF_MONTH,-7);

String str=format(ca.getTime(), DATEFORMATSECOND);returnstr;

}/*** 得到本月第一天的日期*/

public staticDate getStartDayOfMonth(Date date) {

Calendar cDay=Calendar.getInstance();

cDay.setTime(date);

cDay.set(Calendar.DAY_OF_MONTH,1);returncDay.getTime();

}/*** 得到本月第一天的日期*/

public static Date getStartDayOfMonth(String dateStr) throwsParseException {

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

Date date=sdf.parse(dateStr);

Calendar cDay=Calendar.getInstance();

cDay.setTime(date);

cDay.set(Calendar.DAY_OF_MONTH,1);returncDay.getTime();

}/*** 得到本月最后一天的日期*/

public staticDate getEndDayOfMonth(Date date) {

Calendar cDay=Calendar.getInstance();

cDay.setTime(date);

cDay.set(Calendar.DAY_OF_MONTH, cDay.getActualMaximum(Calendar.DAY_OF_MONTH));returncDay.getTime();

}/*** 得到本月最后一天的日期*/

public static Date getEndDayOfMonth(String dateStr) throwsParseException {

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

Date date=sdf.parse(dateStr);

Calendar cDay=Calendar.getInstance();

cDay.setTime(date);

cDay.set(Calendar.DAY_OF_MONTH, cDay.getActualMaximum(Calendar.DAY_OF_MONTH));returncDay.getTime();

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

public staticDate getStartDayOfNextMonth(Date date) {

Calendar cDay=Calendar.getInstance();

cDay.setTime(date);

cDay.add(Calendar.MONTH,+1);

cDay.set(Calendar.DAY_OF_MONTH,1);returncDay.getTime();

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

public static Date getStartDayOfNextMonth(String dateStr) throwsParseException {

Date date=parase(dateStr, DATEFORMATMONTH);

Calendar cDay=Calendar.getInstance();

cDay.setTime(date);

cDay.add(Calendar.MONTH,+1);

cDay.set(Calendar.DAY_OF_MONTH,1);returncDay.getTime();

}/*** 获取指定日期所在周的周一*/

public staticDate getMonday(Date date) {

Calendar cDay=Calendar.getInstance();

cDay.setTime(date);

cDay.set(Calendar.DAY_OF_WEEK,2);//老外将周日定位第一天,周一取第二天

returncDay.getTime();

}/*** 获取指定日期所在周日*/

public staticDate getSunday(Date date) {

Calendar cDay=Calendar.getInstance();

cDay.setTime(date);if (Calendar.DAY_OF_WEEK == cDay.getFirstDayOfWeek()) { //如果刚好是周日,直接返回

returndate;

}else {//如果不是周日,加一周计算

cDay.add(Calendar.DAY_OF_YEAR, 7);

cDay.set(Calendar.DAY_OF_WEEK,1);returncDay.getTime();

}

}/*** 获取本年的第一天*/

public staticDate getFirstDayOfYear(Date date){

Calendar calendar=Calendar.getInstance();

calendar.setTime(date);

calendar.set(Calendar.DAY_OF_YEAR,1);returncalendar.getTime();

}/*** 获取本年的第一天*/

public static Date getFirstDayOfYear(String dateStr) throwsParseException{

Date date=parase(dateStr, DATEFORMATYEAR);

Calendar calendar=Calendar.getInstance();

calendar.setTime(date);

calendar.set(Calendar.DAY_OF_YEAR,1);returncalendar.getTime();

}/*** 获取本年的最后一天*/

public staticDate getLastDayOfYear(Date date){

Calendar calendar=Calendar.getInstance();

calendar.setTime(date);

calendar.set(Calendar.DAY_OF_YEAR, calendar.getActualMaximum(Calendar.DAY_OF_YEAR));returncalendar.getTime();

}/*** 获取本年的最后一天*/

public static Date getLastDayOfYear(String dateStr) throwsParseException{

Date date=parase(dateStr, DATEFORMATYEAR);

Calendar calendar=Calendar.getInstance();

calendar.setTime(date);

calendar.set(Calendar.DAY_OF_YEAR, calendar.getActualMaximum(Calendar.DAY_OF_YEAR));returncalendar.getTime();

}/*** 获取下一年的第一天*/

public staticDate getFirstDayOfNextYear(Date date){

Calendar calendar=Calendar.getInstance();

calendar.setTime(date);

calendar.add(Calendar.YEAR,+1);

calendar.set(Calendar.DAY_OF_YEAR,1);returncalendar.getTime();

}/*** 获取下一年的第一天*/

public static Date getFirstDayOfNextYear(String dateStr) throwsParseException{

Date date=parase(dateStr, DATEFORMATYEAR);

Calendar calendar=Calendar.getInstance();

calendar.setTime(date);

calendar.add(Calendar.YEAR,+1);

calendar.set(Calendar.DAY_OF_YEAR,1);returncalendar.getTime();

}/*** 获取昨天的日期

*

*@paramstrDate

*@return*@throwsParseException

*@throwsException*/

public static String getYestoday() throwsParseException {

Calendar calendar=Calendar.getInstance();

calendar.add(calendar.DATE,-1);

calendar.set(calendar.HOUR_OF_DAY,0);

calendar.set(calendar.MINUTE,0);returnformat(calendar.getTime(), DATEFORMATMINUTE);

}/*** 获取当前时间分钟之前 精确到分钟*/

public static String getBeforMinutesSysDate(int minute) throwsParseException{

Calendar calendar=Calendar.getInstance();

calendar.add(Calendar.MINUTE,-minute);returnformat(calendar.getTime(), DATEFORMATMINUTE);

}/*** 获取当前时间分钟之前 精确到分钟*/

public static String getMinuteSysDate() throwsParseException{

Calendar calendar=Calendar.getInstance();returnformat(calendar.getTime(), DATEFORMATMINUTE);

}}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值