Java獲取當前系統時間的前N小時時間


Java獲取當前系統時間的前N小時時間
先說一下代碼中存在的一個問題

   /**
    * 當前時間向推幾小時
    * @param ihour 小時
    * @return String
    */
   public static String getBeforeByHourTime(int ihour){
      String returnstr = "";
      Calendar calendar = Calendar.getInstance();
      calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - ihour);
      SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      returnstr = df.format(calendar.getTime());
      return returnstr;
  }

但是這個代碼存在問題,假如是凌晨1點向前推3小時就不對了,
所以存在着問題,采用以下的方法就能很好解決

  /**
   * 當前時間向推幾小時
   * @param ihour 小時
   * @return String
   */
  public static String dateRoll(int ihour) {
      DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
      //(1)獲取當前時間
      LocalDateTime date = LocalDateTime.now();
      //(2)獲取當前時間的前幾小時時間
      LocalDateTime localDateTime = date.minusHours(ihour);

      return dateTimeFormatter.format(localDateTime);
  }

以上的代碼就能很好的解決問題,要是凌晨1點向前推3小時就是前一天的23點.


免責聲明!

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



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