Java中時間方法大全01(持續更新)


下面這些方法都可以封裝到一個工具類中

  /**
     * 獲取當前時間的時間戳
     */
    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;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM