欺负凹凸曼的小怪兽
2017-05-18 17:38:00
JAVA新手写的日期工具类
没有多少开发经验,所以写的东西问题多多,请各位牛牛能多多指点,感激不尽!
package com.demo.ssm.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
*
* @description:日期工具类
* @version:v1.0.0
* @date:2017年5月18日 下午5:22:20
* @author:ZhengYelong
*/
public class DateUtil {
/**
* 默认日期格式(yyyy-MM-dd)
*/
public static final String DATE_DEFAULT = "yyyy-MM-dd";
/**
* 默认日期格式(yyyy-MM)
*/
public static final String DATE_DEFAULT_SHORT = "yyyy-MM";
/**
* 默认日期时间格式(yyyy-MM-dd HH:mm)
*/
public static final String DATETIME_DEFAULT_SHORT = "yyyy-MM-dd HH:mm";
/**
* 默认日期时间格式(yyyy-MM-dd HH:mm:ss)
*/
public static final String DATETIME_DEFAULT = "yyyy-MM-dd HH:mm:ss";
/**
* 默认时间格式(HH:mm)
*/
public static final String TIME_DEFAULT_SHORT = "HH:mm";
/**
* 默认时间格式(HH:mm:ss)
*/
public static final String TIME_DEFAULT = "HH:mm:ss";
private static Calendar calendar = Calendar.getInstance();
/**
*
* @Description: 获取当前日期
* @return
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午3:21:43
*/
public static Date getCurrentDate() {
return new Date();
}
/**
*
* @Description: 返回当前日期的字符串格式(yyyy-MM-dd)
* @return
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午3:17:38
*/
public static String getCurrentDateStr() {
return getCurrentDateStr(DATE_DEFAULT);
}
/**
*
* @Description: 返回指定格式的当前日期
* @param patternStr 格式化日期的格式
* @return
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午3:18:35
*/
public static String getCurrentDateStr(String patternStr) {
return formatToString(getCurrentDate(), patternStr);
}
/**
*
* @Description:将字符串日期转换成默认日期(yyyy-MM-dd)
* @param dateStr 字符串日期
* @return 格式化后的日期
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午3:00:33
*/
public static Date parseToDate(String dateStr) {
return parseToDate(dateStr, DATE_DEFAULT);
}
/**
*
* @Description: 将字符串转化为指定格式的日期
* @param dateStr 日期字符串
* @param patternStr 日期格式化格式
* @return 格式化后的日期
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午2:44:32
*/
public static Date parseToDate(String dateStr, String patternStr) {
Date date = null;
try {
date = new SimpleDateFormat(patternStr).parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
/**
*
* @Description: 将日期格式化成默认字符串日期(yyyy-MM-dd)
* @param date 日期
* @return 日期字符串
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午3:05:51
*/
public static String formatToString(Date date) {
return formatToString(date, DATE_DEFAULT);
}
/**
*
* @Description: 将日期格式化成指定格式的字符串日期
* @param date 日期
* @param patternStr 格式化日期的格式
* @return 日期字符串
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午3:06:44
*/
public static String formatToString(Date date, String patternStr) {
if (null == date) {
return "";
}
if (null == patternStr || "".equals(patternStr)) {
patternStr = DATE_DEFAULT;
}
return new SimpleDateFormat(patternStr).format(date);
}
/**
*
* @Description: 获取日期所在月份的第一天
* @param date 日期
* @return
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午3:30:45
*/
public static Date getFirstDayOfMonth(Date date) {
if (null == date) {
return null;
}
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, 1);
return calendar.getTime();
}
/**
*
* @Description: 获取日期所在月份的最后一天
* @param date 日期
* @return
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午3:38:42
*/
public static Date getLastDayOfMonth(Date date) {
if (null == date) {
return null;
}
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.add(Calendar.MONTH, 1);
calendar.add(Calendar.DAY_OF_MONTH, -1);
return calendar.getTime();
}
/**
*
* @Description: 获取日期所在周的周一的日期
* @param date 日期
* @return
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午3:46:58
*/
public static Date getFirstDayOfWeek(Date date) {
if (null == date) {
return null;
}
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek());
return calendar.getTime();
}
/**
*
* @Description: 获取日期所在周的周日的日期
* @param date 日期
* @return
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午3:47:47
*/
public static Date getLastDayOfWeek(Date date) {
if (null == date) {
return null;
}
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek() + 6);
return calendar.getTime();
}
/**
*
* @Description: 获取两个日期之间的所有日期
* @param startDate 开始日期(yyyy-MM-dd)
* @param endDate 结束日期(yyyy-MM-dd)
* @return 日期集合
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午4:18:35
*/
public static List<Date> getBetweenDate(Date startDate, Date endDate) {
List<Date> everyDays = new ArrayList<Date>();
if (null == startDate || null == endDate || endDate.before(startDate)) {
return everyDays;
}
startDate = DateUtil.parseToDate(DateUtil.formatToString(startDate));
endDate = DateUtil.parseToDate(DateUtil.formatToString(endDate));
everyDays.add(startDate);
calendar.setTime(startDate);
while (calendar.getTime().compareTo(endDate) < 0) {
calendar.add(Calendar.DAY_OF_MONTH, 1);
everyDays.add(calendar.getTime());
}
return everyDays;
}
/**
*
* @Description: 获取当前日期n天之前的日期
* @param day 天数
* @return
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午4:29:11
*/
public static Date getBeforeOfDay(int day) {
return getBeforeOfDay(getCurrentDate(), day);
}
/**
*
* @Description: 获取指定日期N天之前的日期
* @param date 日期
* @param day 天数
* @return
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午5:06:17
*/
public static Date getBeforeOfDay(Date date, int day) {
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - day);
return calendar.getTime();
}
/**
*
* @Description: 获取当前日期n天之后的日期
* @param day 天数
* @return
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午4:59:39
*/
public static Date getAfterOfDay(int day) {
return getAfterOfDay(getCurrentDate(), day);
}
/**
*
* @Description: 获取指定日期N天之后的日期
* @param date 日期
* @param day 天数
* @return
* @version:v1.0
* @author:ZhengYelong
* @date:2017年5月18日 下午5:07:01
*/
public static Date getAfterOfDay(Date date, int day) {
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + day);
return calendar.getTime();
}
}
猜你喜欢
请下载代码后再发表评论
相关代码
最近下载
最近浏览
wenpeng182013 LV7
1月6日
managment LV3
2024年4月17日
微信网友_6853257609302016
2024年2月5日
暂无贡献等级
1112WHQ LV7
2023年11月3日
surpriseY LV1
2023年10月14日
MIAOHUA LV6
2022年1月13日
charles1256 LV11
2021年12月15日
疯子庭 LV8
2021年11月30日
Mywang LV4
2021年11月19日
小白小怪 LV10
2021年6月8日



