Date转String
/**
* jdk1.8
* @param date 时间
* @param pattern 日期格式
* @return
*/
public static String getDateToString(Date date, String pattern) {
if (StringUtils.isBlank(date) || StringUtils.isBlank(pattern)) {
return "";
}
//设置字符串格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
return simpleDateFormat.format(date);
}
String转Date
/**
* 将短时间格式字符串转换为时间 yyyy-MM-dd
*
* @param strDate
* @return
*/
public static Date strToDate(String strDate,String pattern) {
SimpleDateFormat formatter = new SimpleDateFormat(pattern);
ParsePosition pos = new ParsePosition(0);
Date strtodate = formatter.parse(strDate, pos);
return strtodate;
}
获取当前日期,格式:yyyy-MM-dd
/**
* jdk1.8
* 获取当前日期,格式:yyyy-MM-dd
*
* @return
*/
public static String getCurrentDate() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
return df.format(new Date());
}
获取当前时间,格式:yyyy-MM-dd HH:mm:ss
/**
* 获取当前时间,格式:yyyy-MM-dd HH:mm:ss
*
* @return
*/
public static String getCurrentTime() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
return df.format(new Date());
}
获取当前日期(指定格式)
/**
* 获取当前日期(指定格式)
* @param format 日期格式
* @return
*/
public static String getCurrentDate(String format) {
SimpleDateFormat df = new SimpleDateFormat(format);//设置日期格式
return df.format(new Date());
}
获取当前小时(24小时制)
/**
* 获取当前小时(24小时制)
*
* @return
*/
public static int getCurrentHour() {
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.HOUR_OF_DAY);
}
获取当前(月份)日期
/**
* 获取当前(月份)日期
*
* @return
*/
public static int getCurrentDayOfMonth() {
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.DAY_OF_MONTH);
}
获取当前(星期)日期(星期一为第一天)
/**
* 获取当前(星期)日期(星期一为第一天)
*
* @return
*/
public static int getCurrentDayOfWeek() {
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK);
if(day == 1){
return 7;
}else{
return (day - 1);
}
}
获取当前月份(年)
/**
* 获取当前月份(年)
*
* @return
*/
public static int getCurrentMonthOfYear() {
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.MONTH)+1;
}
获取本月所在季度的月份
/**
* 获取本月所在季度的月份
*
* @return
*/
public static int getCurrentMonthOfQuarter() {
int month = getCurrentMonthOfYear();
int qm = month%3;
if(qm == 0){
qm = 3;
}
return qm;
}
获取日期对象 yyyy-MM-dd
/**
* 获取日期对象
* @param date yyyy-MM-dd
* @return
*/
public static Date getDate(String date) throws Exception{
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
return df.parse(date);
}
获取日期对象yyyy-MM-dd HH:mm:ss
/**
* 获取日期对象yyyy-MM-dd HH:mm:ss
* @param date yyyy-MM-dd HH:mm:ss
* @return
*/
public static Date getDateTime(String dateTime) throws Exception{
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
return df.parse(dateTime);
}
得到n个月之后的月份
/**
* 得到n个月之后的月份
* @param days
* @return
*/
public static String getAfterMonth(int cnt) {
Calendar canlendar = Calendar.getInstance(); // java.util包
canlendar.add(Calendar.MONTH, cnt); // 日期减 如果不够减会将月变动
Date date = canlendar.getTime();
SimpleDateFormat sdfd = new SimpleDateFormat("yyyyMM");
String dateStr = sdfd.format(date);
return dateStr;
}
得到n天之后的日期
/**
* 得到n天之后的日期
* @param days
* @return
*/
public static String getAfterMonthDate(String date, int cnt) throws Exception{
SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd");
Date inDate = sdfd.parse(date);
Calendar canlendar = Calendar.getInstance(); // java.util包
canlendar.setTime(inDate);
canlendar.add(Calendar.MONTH, cnt);
Date outDate = canlendar.getTime();
String dateStr = sdfd.format(outDate);
return dateStr;
}
时间相减得到天数
/**
* 功能描述:时间相减得到天数
* @param beginDateStr 开始时间
* @param endDateStr 结束时间
* @return
*/
public static long getDaySub(String beginDateStr,String endDateStr){
long day=0;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date beginDate = null;
java.util.Date endDate = null;
try {
beginDate = format.parse(beginDateStr);
endDate= format.parse(endDateStr);
} catch (ParseException e) {
e.printStackTrace();
}
day=(endDate.getTime()-beginDate.getTime())/(24*60*60*1000);
//System.out.println("相隔的天数="+day);
return day;
}
获取日期年份
/**
* 获取日期年份
* @return
*/
public static int getYear(String date) {
if(StringUtils.isEmpty(date) && date.length() >= 4){
return 0;
}
return Integer.parseInt(date.substring(0, 4));
}
获取日期月份
/**
* 获取日期月份
* @param date yyyy-MM-dd格式
* @return
*/
public static int getMonth(String date) {
if(StringUtils.isEmpty(date) && date.length() >= 7){
return 0;
}
return Integer.parseInt(date.substring(5, 7));
}
获取日期所在年份的第几周
/**
* 获取日期所在年份的第几周
* @param date yyyy-MM-dd格式
* @return
*/
public static int getWeekOfYear(String date) throws Exception{
if(StringUtils.isEmpty(date)){
return 0;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date inDate = sdf.parse(date);
Calendar canlendar = Calendar.getInstance(); // java.util包
canlendar.setTime(inDate);
return canlendar.get(Calendar.WEEK_OF_YEAR);
}
周数时间工具
获取本周第1天
/**
* jdk1.8
* 获取本周第1天
* <p>
* 每星期第一天为:星期1,最后一天为星期日
*
* @return yyyy-mm-dd
*/
public static String getMondayOfThisWeek() {
return LocalDate.now().plusWeeks(0).with(DayOfWeek.MONDAY).toString();
}
获取本周最后1天
/**
*jdk1.8
* 获取本周最后1天
* 每星期第一天为:星期一,最后一天为星期日
*
* @return yyyy-mm-dd
*/
public static String getWeeklastday() {
return LocalDate.now().plusWeeks(0).with(DayOfWeek.SUNDAY).toString();
}
获取上周第一天的时间
/**
* jdk1.8
* 获取上周第一天的时间 yyyy-mm-dd
* 每星期第一天为:星期一,最后一天为星期日
*
* @return yyyy-mm-dd
*/
public static String getLastWeekFirstDay() {
return LocalDate.now().plusWeeks(-1).with(DayOfWeek.MONDAY).toString();
}
获取上周最后一天的时间
/**
* jdk1.8
* 获取上周最后一天的时间 yyyy-mm-dd
* 每星期第一天为:星期一,最后一天为星期日
*
* @return yyyy-mm-dd
*/
public static String getLastWeekEndDay() {
return LocalDate.now().plusWeeks(-1).with(DayOfWeek.SUNDAY).toString();
}
获取去年的本周的开始时间
/**
* jdk1.8
* 获取去年的本周的开始时间
*
* @return yyyy-mm-dd
*/
public static String getLastYearThisWeekFirst() {
return LocalDate.now().minusYears(1).with(DayOfWeek.MONDAY).toString();
}
获取去年的本周的结束时间
/**
* jdk1.8
* 获取去年的本周的结束时间
*
* @return yyyy-mm-dd
*/
public static String getLastYearThisWeekEnd() {
return LocalDate.now().minusYears(1).with(DayOfWeek.SUNDAY).toString();
}
月数时间工具
获取本月第一天
/**
* jdk1.8
* 获取本月第一天
*
* @return yyyy-mm-dd
*/
public static String getThisMonthFirstDay() {
return LocalDate.now().plusMonths(0).with(TemporalAdjusters.firstDayOfMonth()).toString();
}
获取本月最后一天
/**
* jdk1.8
* 获取本月最后一天
*
* @return yyyy-mm-dd
*/
public static String getThisMonthEndDay() {
return LocalDate.now().minusMonths(0).with(TemporalAdjusters.lastDayOfMonth()).toString();
}
获取上月第一天
/**
* jdk1.8
* 获取上月第一天
*
* @return yyyy-mm-dd
*/
public static String getLastMonthFirstDay() {
return LocalDate.now().plusMonths(-1).with(TemporalAdjusters.firstDayOfMonth()).toString();
}
获取上月最后一天
/**
* jdk1.8
* 获取上月最后一天
* DateUtils
*
* @return yyyy-mm-dd
*/
public static String getLastMonthEndDay() {
return LocalDate.now().minusMonths(1).with(TemporalAdjusters.lastDayOfMonth()).toString();
}
获取本月天数
/**
* jdk1.8
* 获取本月天数
*
* @return yyyy-mm-dd
*/
public static int getThisMonthDayCount() {
return LocalDate.now().with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
}
获取上月天数
/**
* jdk1.8
* 获取上月天数
*
* @return yyyy-mm-dd
*/
public static int getLastMonthDayCount() {
return LocalDate.now().plusMonths(-1).with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
}
获取去年本月的开始时间
/**
* jdk1.8
* 获取去年本月的开始时间
*
* @return yyyy-mm-dd
*/
public static String getLastYearMonthStartDay() {
return LocalDate.now().plusYears(-1).with(TemporalAdjusters.firstDayOfMonth()).toString();
}
获取去年本月的结束时间
/**
* jdk1.8
* 获取去年本月的结束时间
*
* @return yyyy-mm-dd
*/
public static String getLastYearMonthEndDay() {
return LocalDate.now().plusYears(-1).with(TemporalAdjusters.lastDayOfMonth()).toString();
}
季度时间工具
获取本季第一天
/**
* jdk1.8
* 获取本季第一天
*
* @return yyyy-mm-dd
*/
public static String getThisQuarterFirstDay() {
LocalDate inputDate = LocalDate.parse(getCurrentDate());
Month month = inputDate.getMonth();
Month firstMonthOfQuarter = month.firstMonthOfQuarter();
LocalDate localDate = LocalDate.of(inputDate.getYear(), firstMonthOfQuarter, 1);
return localDate.toString();
}
获取本季度最后一天
/**
* jdk1.8
* 获取本季度最后一天
*
* @return yyyy-mm-dd
*/
public static String getThisQuarterEndDay() {
LocalDate inputDate = LocalDate.parse(getCurrentDate());
Month month = inputDate.getMonth();
Month firstMonthOfQuarter = month.firstMonthOfQuarter();
Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);
LocalDate localDate = LocalDate.of(inputDate.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(inputDate.isLeapYear()));
return localDate.toString();
}
获取上季度第一天
/**
* jdk1.8
* 获取上季度第一天
*
* @return yyyy-mm-dd
*/
public static String getLastQuarterFirstDay() {
Calendar startCalendar = Calendar.getInstance();
startCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3 - 1) * 3);
startCalendar.set(Calendar.DAY_OF_MONTH, 1);
return DateUtils.getDateToStringStart(startCalendar.getTime(), DateFormatConstant.C_YYYY_MM_DD);
}
获取上季度最后一天
/**
* jdk1.8
* 获取上季度最后一天
*
* @return yyyy-mm-dd
*/
public static String getLastQuarterEndDay() {
Calendar endCalendar = Calendar.getInstance();
endCalendar.set(Calendar.MONTH, ((int) endCalendar.get(Calendar.MONTH) / 3 - 1) * 3 + 2);
endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return DateUtils.getDateToStringStart(endCalendar.getTime(), DateFormatConstant.C_YYYY_MM_DD);
}
去年本季度开始日期
/**
* jdk1.8
* 去年本季度开始日期
* @return yyyy-mm-dd
*/
public static String getLastYearQuarterFirstDay() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.add(Calendar.YEAR, -1);
LocalDate inputDate = LocalDate.parse( getDateToString(c.getTime(),DateFormatConstant.C_YYYY_MM_DD));
LocalDate localDate = LocalDate.of(inputDate.getYear(),inputDate.getMonth().firstMonthOfQuarter(), 1);
return localDate.toString();
}
去年本季度结束日期
/**
* jdk1.8
* 去年本季度结束日期
* @return yyyy-mm-dd
*/
public static String getLastYearQuarterEndDay() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.add(Calendar.YEAR, -1);
LocalDate inputDate = LocalDate.parse(getDateToString(c.getTime(),DateFormatConstant.C_YYYY_MM_DD));
Month month = inputDate.getMonth();
Month firstMonthOfQuarter = month.firstMonthOfQuarter();
Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);
LocalDate localDate = LocalDate.of(inputDate.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(inputDate.isLeapYear()));
return localDate.toString();
}
年度时间工具
获取当前时间,年份第一天
/**
* jdk1.8
* 获取当前时间,年份第一天
*
* @return yyyy-mm-dd
*/
public static String getThisYearFirstDay() {
return LocalDate.now().plusYears(0).with(TemporalAdjusters.firstDayOfYear()).toString();
}
获取当前时间,年份最后一天
/**
* jdk1.8
* 获取当前时间,年份最后一天
*
* @return yyyy-mm-dd
*/
public static String getThisYearEndDay() {
return LocalDate.now().plusYears(0).with(TemporalAdjusters.lastDayOfYear()).toString();
}
获取去年的第一天
/**
* jdk1.8
* 获取去年的第一天
*
* @return
*/
public static String getLastYearFirstDay() {
return LocalDate.now().plusYears(-1).with(TemporalAdjusters.firstDayOfYear()).toString();
}
获取去年的最后一天
/**
* jdk1.8
* 获取去年的最后一天
* DateUtils
* @return
*/
public static String getLastYearEndDay() {
return LocalDate.now().plusYears(-1).with(TemporalAdjusters.lastDayOfYear()).toString();
}
/**
* jdk1.8
* 获取当前日期,格式:yyyy-MM-dd
*
* @return
*/
public static String getCurrentDate() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
return df.format(new Date());
}