欺负凹凸曼的小怪兽
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(); } }
猜你喜欢
请下载代码后再发表评论