在HTTP请求中以UTC设置时间

时间:2019-12-15 14:05:25

标签: java http jmeter jmeter-5.0

我想在HTTP请求中以current date格式传递timeyyyy-mm-ddThh:mm:ss。我希望我的时间以24小时格式,并且时区应为UTC。我当前正在使用函数${__time(yyyy-MM-dd'T'hh:mm:ss)},该函数以12-hour格式返回时间,时区被视为本地时间。

有人可以帮我吗,我如何以24-hour格式获取时间,并在Jmeter中将时区设置为UTC。

2 个答案:

答案 0 :(得分:0)

您可以使用JSR223 component使用时区来计算时间

Y

或一根(长)衬里

import java.time.*
import java.time.format.DateTimeFormatter;
LocalDateTime  today = LocalDateTime.now(ZoneId.of( "UTC"));
log.info(today.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'hh:mm:ss")));

答案 1 :(得分:0)

JMeter 5.2.1开始,您只能使用__time() function在默认时区中获取时间,如果您需要在其他时区中获取时间,则可以在 system.properties下设置user.timezone Java System Property 文件(位于JMeter安装的“ bin”文件夹中。

如果您的测试假设在不同的时区生成时间戳,那么采用上述方法不是一种选择,您可以考虑切换到__groovy() function,该代码可以执行任意的Groovy代码

  1. 默认时区中的当前时间戳:

    ${__groovy(new Date().format("yyyy-MM-dd'T'hh:mm:ss"),)}
    
  2. UTC时区的当前时间戳:

    ${__groovy(new Date().format("yyyy-MM-dd'T'hh:mm:ss"\,TimeZone.getTimeZone("UTC")),)}
    

演示:

enter image description here

更多信息:Apache Groovy - Why and How You Should Use It