You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JMeter的timeShift函数获取UTC时间而非本地时间?

解决JMeter __timeShift函数输出UTC时间的问题

简便方法:直接指定__timeShift的时区参数

__timeShift函数本身支持指定时区,无需额外编写脚本。函数完整参数格式为:

${__timeShift(格式, 基准时间, 偏移量, 时区, 变量名)}

你只需在第四个参数位置填入UTC,就能让函数输出UTC时区的时间,不会自动转换为本地CST。比如要计算当前时间加30分钟的UTC时间(HH:mm格式),直接使用:

${__timeShift(HH:mm,,PT30M,UTC,)}

参数说明:

  • 第一个参数HH:mm:目标时间格式
  • 第二个参数留空:以当前时间作为基准
  • 第三个参数PT30M:表示偏移30分钟(符合ISO 8601格式)
  • 第四个参数UTC:指定使用UTC时区
  • 第五个参数留空:直接输出结果;也可填入变量名(如utc_time)将结果存入变量,后续HTTP Sampler中用${utc_time}引用即可

备选方案:JSR223脚本实现

如果需要更灵活的时间控制,可通过JSR223 Sampler结合Groovy脚本完成(Groovy是JMeter推荐的脚本语言,性能更优):

  1. 在测试计划中添加一个JSR223 Sampler
  2. 在脚本输入框中粘贴以下代码:
import java.time.LocalDateTime
import java.time.ZoneOffset
import java.time.format.DateTimeFormatter

// 获取当前UTC时间并添加30分钟
def utcDateTime = LocalDateTime.now(ZoneOffset.UTC).plusMinutes(30)
// 格式化为HH:mm格式
def formattedTime = utcDateTime.format(DateTimeFormatter.ofPattern("HH:mm"))
// 将结果存入变量,供后续HTTP Sampler调用
vars.put("utc_time", formattedTime)
  1. 在HTTP Sampler中直接引用变量${utc_time}即可使用计算好的UTC时间

内容的提问来源于stack exchange,提问作者Charles Pannell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 16:10:28