【问题标题】:Java Timestamp SubtractionJava 时间戳减法
【发布时间】:2017-02-11 17:59:39
【问题描述】:

我有一个时间戳作为来自 Json 的字符串,形式为 11/02/2017 17:25:20 as actualArrivalTime 和 11/02/2017 17:25:22 as actualScheduledTime。我想通过减去两个时间戳来计算延迟时间以获得差异,在这种情况下为 +2 或 -2 秒。

【问题讨论】:

    标签: java json timestamp java-time


    【解决方案1】:

    您首先需要将字符串解析为日期 - 在您的情况下,LocalDateTime class 似乎合适。然后您可以计算差异:

    String actualArrivalTime = "11/02/2017 17:25:20";
    String actualScheduledTime = "11/02/2017 17:25:22";
    
    DateTimeFormatter fmt = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
    LocalDateTime arrival = LocalDateTime.parse(actualArrivalTime, fmt);
    LocalDateTime scheduled = LocalDateTime.parse(actualScheduledTime, fmt);
    
    long seconds = ChronoUnit.SECONDS.between(arrival, scheduled);
    System.out.println("Time difference in seconds: " + seconds);
    

    【讨论】:

      【解决方案2】:
      var actualArrivalTime = new Date("11/02/2017 17:25:20");
      var actualScheduledTime = new Date("11/02/2017 17:25:22");
      
      var delayTime =  (actualArrivalTime - actualScheduledTime) / 1000; //-2
      

      根据您需要的顺序,您可以切换两个变量。

      【讨论】:

        【解决方案3】:

        var date1=new Date("11/02/2017 17:25:20");
        var date2=new Date("11/02/2017 17:25:22");
        
        var diff = Math.abs(date1 - date2);
        console.log(diff/1000);

        【讨论】:

        • 抱歉问。这个解决方案适用于 java 还是 JavaScript?我正在研究 java ...从 Json 中提取数据。谢谢。
        【解决方案4】:

        试试这个:

        var arrivalTime = new Date("11/02/2017 17:25:20");
        var scheduledTime = new Date("11/02/2017 17:25:22");
        
        var diff =  arrivalTime.getTime() - scheduledTime.getTime();
        var diffInMs = (diff/1000);
        

        【讨论】:

          猜你喜欢
          • 2013-11-17
          • 1970-01-01
          • 2013-02-03
          • 2021-12-29
          • 2011-04-02
          • 2014-04-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多