package com.boying.common.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; public class DateUtil { public static String DateToString(Date date,String format){ if(!StringUtil.isNullOrEmpty(format)){ SimpleDateFormat f = new SimpleDateFormat(format); String sDate = f.format(date); return sDate; } SimpleDateFormat f = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); String sDate = f.format(date); return sDate; } public static Date stringToDate(String date,String format) throws ParseException { if(!StringUtil.isNullOrEmpty(format)){ SimpleDateFormat f = new SimpleDateFormat(format); return f.parse(date); } SimpleDateFormat f = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); return f.parse(date); } public static Date getYearFirst(int year){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); Date currYearFirst = calendar.getTime(); return currYearFirst; } /** * 获取某年最后一天日期 * @param year 年份 * @return Date */ public static Date getYearLast(int year){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); calendar.roll(Calendar.DAY_OF_YEAR, -1); Date currYearLast = calendar.getTime(); return currYearLast; } /** * 获取指定年月的第一天 * @param year * @param month * @return */ public static Date getFirstDayOfMonth(int year, int month) { Calendar cal = Calendar.getInstance(); //设置年份 cal.set(Calendar.YEAR, year); //设置月份 cal.set(Calendar.MONTH, month-1); //获取某月最小天数 int firstDay = cal.getMinimum(Calendar.DATE); //设置日历中月份的最小天数 cal.set(Calendar.DAY_OF_MONTH,firstDay); return cal.getTime(); } /** * 获取指定年月的最后一天 * @param year * @param month * @return */ public static Date getLastDayOfMonth(int year, int month) { Calendar cal = Calendar.getInstance(); //设置年份 cal.set(Calendar.YEAR, year); //设置月份 cal.set(Calendar.MONTH, month-1); //获取某月最大天数 int lastDay = cal.getActualMaximum(Calendar.DATE); //设置日历中月份的最大天数 cal.set(Calendar.DAY_OF_MONTH, lastDay); return cal.getTime(); } public static String getFirstTimeByDate() { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar cal = Calendar.getInstance(); String start_update = format.format(cal.getTime()); cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY)-1); String end_update = format.format(cal.getTime()); return end_update; } public static Date getMinute(Date date,int x){ Calendar beforeTime = Calendar.getInstance(); beforeTime.setTime(date); beforeTime.add(Calendar.MINUTE, x); return beforeTime.getTime(); } //当天的开始 public static Date getStartTime() { Calendar todayStart = Calendar.getInstance(); todayStart.set(Calendar.HOUR_OF_DAY, 0); todayStart.set(Calendar.MINUTE, 0); todayStart.set(Calendar.SECOND, 0); todayStart.set(Calendar.MILLISECOND, 0); return todayStart.getTime(); } //当天的结束 public static Date getEndTime() { Calendar todayEnd = Calendar.getInstance(); todayEnd.set(Calendar.HOUR_OF_DAY, 23); todayEnd.set(Calendar.MINUTE, 59); todayEnd.set(Calendar.SECOND, 59); todayEnd.set(Calendar.MILLISECOND, 999); return todayEnd.getTime(); } /** * 获取当月开始时间 */ public static Date getMonthStartTime() { Calendar calendar = Calendar.getInstance();// 获取当前日期 calendar.add(Calendar.YEAR, 0); calendar.add(Calendar.MONTH, 0); calendar.set(Calendar.DAY_OF_MONTH, 1);// 设置为1号,当前日期既为本月第一天 calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime(); } /** * 获取当月的结束时间戳 */ public static Date getMonthEndTime() { Calendar calendar = Calendar.getInstance();// 获取当前日期 calendar.add(Calendar.YEAR, 0); calendar.add(Calendar.MONTH, 0); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));// 获取当前月最后一天 calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); calendar.set(Calendar.MILLISECOND, 999); return calendar.getTime(); } public static void main(String[] args) throws ParseException { //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //System.out.println(sdf.format(getDateLessMonth(15))); //System.out.println(getYearMoneyDay4("2021-09-02","08:00:00")); System.out.println(getFirstTimeByDate()); } //获取参考日期的上n个月的数据 public static Date getDateLessMonth(int i) { Calendar calendar = Calendar.getInstance();// 获取当前日期 calendar.add(Calendar.DAY_OF_MONTH, -i);// 设置为1号,当前日期既为本月第一天 return calendar.getTime(); } public static String getYearMoneyDay(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(new Date()); } public static String getYearMoneyDay2(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar rightNow = Calendar.getInstance(); rightNow.add(Calendar.DATE,1); return sdf.format(rightNow.getTime()); } public static String getYearMoneyDay3(String format) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date parse = sdf.parse(format); Calendar rightNow = Calendar.getInstance(); rightNow.setTime(parse); rightNow.add(Calendar.DATE,1); return sdf.format(rightNow.getTime()); } public static Date getYearMoneyDay4(String a,String b) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date parse = sdf.parse(getYearMoneyDay3(a)+" "+b); return parse; } }