DateUtil 工具类 2.0.1

package com.jfai.kg.kafkacomsu.util;


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;


import org.apache.commons.lang.time.DateUtils;


/**  
  * @Package com.jfai.kg.kafkacomsu.util
  * @author wanglf
  * @Description: 日期工具类 
  * @date 2018年6月30日14:43:25
  * @version 2.0.1
  * @detail 比上一个版本功能增强..
  */
public class DateUtil {


public static final String DEFAULT_FORMAT_PATTERN = "yyyy-MM-dd HH:mm:ss";
public static final String DATE_FORMAT_PATTERN = "yyyy-MM-dd";
public static final String CHINA_FORMAT_PATTERN = "yyyy年MM月dd日";
public static final String TIME_FORMAT_PATTERN = "HH:mm:ss";
public static final String ORDER_FORMAT_PATTERN = "yyyyMMddHHmmss";
public static final String LOGGER_FORMAT_PATTERN = "yyyy-MM-dd HH:mm:ss:SSS";


public static final String CHINA_FORMAT_PATTERN_EX = "yyyy年MM月dd日 HH时mm分ss秒";


public static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");


/**
* 获得当前时间,返回格式为yyyy-MM-dd HH:mm:ss
*/
public static String getCurrentTimeString() {
return format.format(new Date());
}


public static String getDateString() {
return getCurrentTimeString();
}


public static String getDateString(Date date) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.format(date);
}


public static String getDateString(Date date, String dateFormatString) {
SimpleDateFormat f = new SimpleDateFormat(dateFormatString);
return f.format(date);
}


public static Date getDate(String dateString, String dateFormatString) throws ParseException {
SimpleDateFormat f = new SimpleDateFormat(dateFormatString);
return f.parse(dateString);
}


public static Date getDateFromString(String dateString) throws ParseException {
return format.parse(dateString);
}


public static Date getDateFromDateString(String dateString, String dateFormatString) throws ParseException {
SimpleDateFormat f = new SimpleDateFormat(dateFormatString);
return f.parse(dateString);
}


public static Date getYesterday() {
Calendar cale = Calendar.getInstance();
cale.add(Calendar.DATE, -1);
return cale.getTime();
}


/**
* @param date
* @return
* @Description: 返回返回年份
*/
public static Integer getYear(Date date) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy");
String year = formatter.format(date);
return Integer.parseInt(year);
}


/**
* @param date
* @return
* @Description: 返回月份
*/
public static Integer getMonth(Date date) {
SimpleDateFormat formatter = new SimpleDateFormat("MM");
String month = formatter.format(date);
return Integer.parseInt(month);
}


/**
* @param date
* @return
* @Description: 返回天数
*/
public static Integer getDay(Date date) {
SimpleDateFormat formatter = new SimpleDateFormat("dd");
String day = formatter.format(date);
return Integer.parseInt(day);
}


/**
* 获得当前月的第一天,返回格式为yyyy-MM-dd HH:mm:ss
*/
public static String getFirstDayOfMonth() {
Calendar cale = Calendar.getInstance();
cale.set(Calendar.DAY_OF_MONTH, 1);
return format.format(cale.getTime());
}


/**
* 获得当前月的最后一天,返回格式为yyyy-MM-dd HH:mm:ss
*/
public static String getLastDayOfMonth() {
Calendar cale = Calendar.getInstance();
cale.add(Calendar.MONTH, 1);
cale.set(Calendar.DAY_OF_MONTH, 0);
return format.format(cale.getTime());
}


/**
* 获得下个月的第一天,返回格式为yyyy-MM-dd HH:mm:ss
*/
public static String getFirstDayOfNextMonth() {
Calendar cale = Calendar.getInstance();
cale.add(Calendar.MONTH, 1);
cale.set(Calendar.DAY_OF_MONTH, 1);
return format.format(cale.getTime());
}


/**
* @Description: 得到当前星期数
*/
public static int getCurrentDayWeekDay() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
return calendar.get(Calendar.DAY_OF_WEEK) - 1;
}


/**
* 获取系统当前时间的上几天/周/月/年或者以后几天/周/月/年的时间

* @param type
*            :1 天  2 周 3 月 4 年
* @param count
* :-1  上一   1   下一   -2   上二     2   下二...
* @param dateFormatString
*            :返回的时间样式,如:yyyy-MM-dd hh:mm:ss
*/
public static String getSomeTimes(int type, int count, String dateFormatString) {
Date date = null;
Calendar curr = Calendar.getInstance();
switch (type) {
case 1:
curr.set(Calendar.DAY_OF_MONTH, curr.get(Calendar.DAY_OF_MONTH) + count);
date = curr.getTime();
break;
case 2:
curr.set(Calendar.DAY_OF_MONTH, curr.get(Calendar.DAY_OF_MONTH) + 7 * count);
date = curr.getTime();
break;
case 3:
curr.set(Calendar.MONTH, curr.get(Calendar.MONTH) + count);
date = curr.getTime();
break;
case 4:
curr.set(Calendar.YEAR, curr.get(Calendar.YEAR) + count);
date = curr.getTime();
break;
default:
break;
}
SimpleDateFormat f = new SimpleDateFormat(dateFormatString);
return f.format(date);
}


/**
* @param date1
* @param date2
* @return
* @Description: 返回两个日期是否是相同的天数
*/
public static boolean isSameDay(Date date1, Date date2) {
return DateUtils.isSameDay(date1, date2);
}


/**

* @param str 日期字符串
* @param formatStr  日期格式化字符串
* @return
* @Description: 验证日期字符串合法性
*/
public static boolean validateDateStr(String str, String formatStr) {
boolean isSuccess = true;
SimpleDateFormat format = new SimpleDateFormat(formatStr);
try {
// 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01
format.setLenient(false);
format.parse(str);
} catch (ParseException e) {
// e.printStackTrace();
// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
isSuccess = false;
}
return isSuccess;
}

/**

* @param str 日期字符串
* @param formatStr  日期格式化字符串
* @return
* @Description: 验证日期字符串合法性
*/
public static boolean checkDateStr(String str, String formatStr) {
return validateDateStr(str, formatStr);
}


public static void main(String[] args) {
System.out.println(isSameDay(getYesterday(), new Date()));
}
}

猜你喜欢

转载自blog.csdn.net/u014793936/article/details/80866608