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点.

  • 相关阅读:
    接口和抽象类的区别联系(一)
    股指期货-基础知识
    A股魔咒
    .NET 分布式架构
    Spring Cloud Netflix
    现货、期货、期权、权证
    复盘-20190321
    复盘思考
    公司法
    2019年行情思考
  • 原文地址:https://www.cnblogs.com/harper2/p/14165657.html
Copyright © 2011-2022 走看看