根據月份,獲取該月第一天和下個月第一天的Date值
阿新 • • 發佈:2019-02-09
使用者需求是根據月份來篩選本月的所有資料,前端傳來的是"yyyy-MM"格式的字串,這樣就需要後端處理下,弄成兩個Date去資料庫查詢。由於每個月最後一天不固定,所以想法是用當月第一天和次月第一天去查詢,轉換程式碼如下:
** * 時間轉化工具 * author: wengjiaxin * since: 2018/9/4 19:47 */ public class DateTimeUtils { private DateTimeUtils() { } private static final String FORMAT = "yyyy-MM-dd"; /** * String轉Date型別 * * @param dateStr * 時間字串 * @return Date型別時間 * @throws Exception * 異常 */ public static Date string2Date(String dateStr) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat(FORMAT); if (StringUtils.isNotBlank(dateStr)) { return sdf.parse(dateStr); } return null; } /** * Date轉String * * @param date * Date型別時間 * @return 時間字串 */ public static String date2String(Date date) { SimpleDateFormat sdf = new SimpleDateFormat(FORMAT); if (date != null) { return sdf.format(date); } return null; } /** * 獲取指定月份第一天Date * @param dateStr yyyy-MM * @return Date型別時間 */ public static Date getFirstDayByMonth(String dateStr) throws Exception { dateStr = dateStr + "-01"; return string2Date(dateStr); } /** * 獲取指定月份下個月第一天Date * @param dateStr * @return */ public static Date getNextFirstDayByMonth(String dateStr) throws Exception { Date date = getFirstDayByMonth(dateStr); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.MONTH, 1); return calendar.getTime(); } }