zoukankan      html  css  js  c++  java
  • 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点.

  • 相关阅读:
    [CQOI2006]凸多边形
    NOIP后省选集训前文化课划水记
    FFT字符串匹配
    ghj1222的代码规范
    博弈论
    P1350 车的放置
    P2110 欢总喊楼记
    虫食算
    3192: [JLOI2013]删除物品
    逛公园
  • 原文地址:https://www.cnblogs.com/harper2/p/14165657.html
Copyright © 2011-2022 走看看