下面這些方法都可以封裝到一個工具類中
/** * 獲取當前時間的時間戳 */ public static int getCurrentTimeIntValue() { return (int) (System.currentTimeMillis() / 1000); } /** * 獲取days天后的當前時間 時間戳 */ public static int addDaysTimeStamp(int days) { Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); cal.add(Calendar.DATE, days); return (int) (cal.getTimeInMillis() / 1000); } /** * 獲取今日零點的時間戳 */ public static int getStartTimeStamp() { 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); long time = todayStart.getTimeInMillis()/1000; return (int)time; } /** * 獲取今日23:59:59的時間戳 */ public static int getEndTimeStamp() { 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); long time = todayEnd.getTimeInMillis() / 1000; return (int) time; } /** * 獲取指定時間零點的時間戳 */ public static int getStartTimeStamp(Date date) { Calendar todayStart = Calendar.getInstance(); todayStart.setTime(date); todayStart.set(Calendar.HOUR_OF_DAY, 0); todayStart.set(Calendar.MINUTE, 0); todayStart.set(Calendar.SECOND, 0); todayStart.set(Calendar.MILLISECOND, 0); long time = todayStart.getTimeInMillis()/1000; return (int)time; } /** * 獲取指定時間23:59:59的時間戳 */ public static int getEndTimeStamp(Date date) { Calendar todayEnd = Calendar.getInstance(); todayEnd.setTime(date); todayEnd.set(Calendar.HOUR_OF_DAY, 23); todayEnd.set(Calendar.MINUTE, 59); todayEnd.set(Calendar.SECOND, 59); todayEnd.set(Calendar.MILLISECOND, 999); long time = todayEnd.getTimeInMillis() / 1000; return (int) time; } /** * 獲取昨天零點的時間(字符串) */ public static String getYesterDayStartTimeStamp() { SimpleDateFormat sdfYMD = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.SECOND,0); //這是將【秒】設置為0 calendar.set(Calendar.MINUTE,0); //這是將【分】設置為0 calendar.set(Calendar.HOUR_OF_DAY,0); //這是將【時】設置為0 calendar.add(Calendar.DATE,-1); //當前日期加一 String yesterday = sdfYMD.format(calendar.getTime()); //獲取昨天的時間 如2021-02-25 00:00:00 return yesterday; } /** * 獲取昨天零點的時間戳 */ public static Integer getBeforeStartTime(){ 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); long time = todayStart.getTimeInMillis()/1000; return (int)time-86400; } /** * 獲取昨天23:59:59的時間(字符串) */ public static String getYesterDayEndTimeStamp() { SimpleDateFormat sdfYMD = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.SECOND,59); //這是將當天的【秒】設置為0 calendar.set(Calendar.MINUTE,59); //這是將當天的【分】設置為0 calendar.set(Calendar.HOUR_OF_DAY,23); //這是將當天的【時】設置為0 calendar.add(Calendar.DATE,-1); //當前日期加一 String yesterday = sdfYMD.format(calendar.getTime()); //獲取第二天的時間 2021-02-25 00:00:00 return yesterday; } /** * 獲取明天零點的時間戳 */ public static Integer getAfterStartime() { 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); long time = todayStart.getTimeInMillis()/1000; return (int)time+86400; } /** * 將昨天凌晨時間轉換為Date類型(下面設置成這樣 new simpleDateFormat("yyyy-MM-dd HH:mm:ss") 數據中對應的字段類型就是DateTime)
* 這個方法中調用了上面的getYesterDayStartTimeStamp()方法哦 */ public static Date getDateTime() { Date dateTime = null; String yesterDayStartTimeStamp = DateUtil.getYesterDayStartTimeStamp(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { dateTime = formatter.parse(yesterDayStartTimeStamp); } catch (ParseException e) { e.printStackTrace(); } //Sun May 09 00:00:00 CST 2021 return dateTime; }
/** * @param begin 開始時間 * @param end 結束時間 * 獲取begin - end 時間段內的每一天的日期 比如獲取 2021-4-15到2021-5-10內每一天的日期 */ public static List<String> getDayBetweenDates(String begin, String end) throws ParseException { SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); Date dBegin = sd.parse(begin); //將字符串參數轉為Date類型 比如參數為 "2021-4-14" 將其轉為Date類型 Date dEnd = sd.parse(end); List<String> lDate = new ArrayList<>(); //創建集合, 存儲begin - end 時間段內的時間 lDate.add(sd.format(dBegin)); Calendar calBegin = Calendar.getInstance(); calBegin.setTime(dBegin); Calendar calEnd = Calendar.getInstance(); calEnd.setTime(dEnd); while (dEnd.after(calBegin.getTime())) { calBegin.add(Calendar.DAY_OF_MONTH, 1); lDate.add(sd.format(calBegin.getTime())); } return lDate; }