Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Java/Jmeter向历元添加15秒_Javascript_Java_Datetime_Jmeter_Beanshell - Fatal编程技术网

Javascript Java/Jmeter向历元添加15秒

Javascript Java/Jmeter向历元添加15秒,javascript,java,datetime,jmeter,beanshell,Javascript,Java,Datetime,Jmeter,Beanshell,因此,我尝试使用以下代码在收集的历元时间上增加15秒: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); long now = cal.getTimeInMillis(); cal.add(Calendar.SECONDS, 15); long t

因此,我尝试使用以下代码在收集的历元时间上增加15秒:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
long now = cal.getTimeInMillis();
cal.add(Calendar.SECONDS, 15);

long then = cal.getTimeInMillis();
long secondsFromEpoch = (then + now) / 1000;

vars.put("secondsFromEpoch",seoncdsFromEpoch);
我尝试使用Jmeter中的JSR223预处理器来实现这一点,我也尝试了Beanshell预处理器。我在Jmeter内部使用的代码中创建的变量没有返回任何结果。这让我假设代码有问题

我写的东西有什么明显不正确的地方吗?或者有没有其他途径可以让我以秒+15秒的时间获得历元时间

您可以从收集的时间创建实例:

Long epochMillisYouCollected = ...
Instant instant = Instant.ofEpochMilli(epochYouCollected);
然后再加上15秒,从epoch返回秒数:

long secondsSinceEpoch = instant.plusSeconds(15).getLong(ChronoField.INSTANT_SECONDS);
您可以从收集时开始创建实例:

Long epochMillisYouCollected = ...
Instant instant = Instant.ofEpochMilli(epochYouCollected);
然后再加上15秒,从epoch返回秒数:

long secondsSinceEpoch = instant.plusSeconds(15).getLong(ChronoField.INSTANT_SECONDS);

首先,你知道还是不知道?您可以向当前时间戳添加15秒,并将其存储到一个变量中,该变量非常简单,如
${{uu timeShift(,,P15S,,secondsFromEpoch)}


如果出于任何原因希望继续编写脚本,则代码(至少)存在4个问题:

  • 我的期望是您应该将日历秒更改为
  • 变量名不同,即在一个地方有
    secondsFromEpoch
    ,在另一个地方有
    seoncdsFromEpoch
  • 不能将其用作
    vars.put()
    函数的参数,请执行以下操作之一:

    vars.put("secondsFromEpoch",String.valueOf(secondsFromEpoch));
    

  • 你在使用Beanshell。等效的Groovy代码类似于:

    use (groovy.time.TimeCategory) {
        def plus15seconds = new Date() + 15.seconds
        vars.put('secondsFromEpoch', plus15seconds.getTime() as String)
    } 
    

  • 首先,你知道还是不知道?您可以向当前时间戳添加15秒,并将其存储到一个变量中,该变量非常简单,如
    ${{uu timeShift(,,P15S,,secondsFromEpoch)}


    如果出于任何原因希望继续编写脚本,则代码(至少)存在4个问题:

  • 我的期望是您应该将日历秒更改为
  • 变量名不同,即在一个地方有
    secondsFromEpoch
    ,在另一个地方有
    seoncdsFromEpoch
  • 不能将其用作
    vars.put()
    函数的参数,请执行以下操作之一:

    vars.put("secondsFromEpoch",String.valueOf(secondsFromEpoch));
    

  • 你在使用Beanshell。等效的Groovy代码类似于:

    use (groovy.time.TimeCategory) {
        def plus15seconds = new Date() + 15.seconds
        vars.put('secondsFromEpoch', plus15seconds.getTime() as String)
    } 
    
  • java.time 我相信你在找我

        long secondsFromEpoch = Instant.now().plusSeconds(15).getEpochSecond();
    
    出了什么问题? 您正在添加两个毫秒值,这两个值都是从1970年开始计算的。这是没有意义的,给你一个未来的时间,大约是今天这个时代的两倍。当我刚才运行您的代码时,我得到了3077271068秒,根据Epoch Unix时间戳转换器,它等于07/07/2067@1:31pm(UTC)

    我建议你不要使用过时的类 您使用的日期和时间类-
    SimpleDateFormat
    Calendar
    date
    -不仅过时很久,而且还存在设计问题,尤其是第一个问题是出了名的麻烦。我建议您避免使用所有这些方法,而是使用java.time

    链接
    java.time 我相信你在找我

        long secondsFromEpoch = Instant.now().plusSeconds(15).getEpochSecond();
    
    出了什么问题? 您正在添加两个毫秒值,这两个值都是从1970年开始计算的。这是没有意义的,给你一个未来的时间,大约是今天这个时代的两倍。当我刚才运行您的代码时,我得到了3077271068秒,根据Epoch Unix时间戳转换器,它等于07/07/2067@1:31pm(UTC)

    我建议你不要使用过时的类 您使用的日期和时间类-
    SimpleDateFormat
    Calendar
    date
    -不仅过时很久,而且还存在设计问题,尤其是第一个问题是出了名的麻烦。我建议您避免使用所有这些方法,而是使用java.time

    链接

    (当时+现在)
    实际上与
    2*now+15000
    相同。“
    2*now
    ”的含义是什么?为什么使用javaxcript标记?Java和JavaScript是两种非常不同的语言,所以请选择。JavaScript也用于Jmeter-这个问题更多地关注Jmeter的功能,而不是语言本身。Java、Groovy、Javascript都是属于Jmeter应用程序的语言。
    (当时+现在)
    实际上与
    2*now+15000
    相同。“
    2*now
    ”的含义是什么?为什么使用javaxcript标记?Java和JavaScript是两种非常不同的语言,所以请选择。JavaScript也用于Jmeter-这个问题更多地关注Jmeter的功能,而不是语言本身。Java、Groovy、Javascript都是属于Jmeter应用程序的语言。