我正在处理 API 响应中的日期。来自 API 的日期为 EST。我需要将 EST(技术上是 EDT)日期转换为 UTC,然后与值采用 UTC 格式的另一个 API 响应的日期进行比较
我正尝试在 JMeter 中使用 Javascript 执行此操作。我有一个“BSF 后处理器”作为我的“HTTP 请求”采样器的子项。
我的输入: 结束日期=2014-01-31T23:59:59
我尝试了几个选项,但没有一个能给我带来预期的值(value)。它们都返回到我的调试采样器上作为..
myNewDate=无效日期
dt1=无效日期
vars.put("myendDate", vars.get("endDate"));
var dt = new Date('myendDate');
vars.put("dt1", dt.toUTCString());
var myDate = new Date('${endDate}');
vars.put("myNewDate", myDate.toUTCString());
var myDate = new Date('${endDate}');
myDate.toISOString();
vars.put("myDate1", myDate);
我认为我使用 Javascript 作为语言的 BSF 后处理器在创建 Date 对象时遇到了问题。
有什么意见吗?
最佳答案
将 groovy-all.jar 添加到 jmeter/lib 文件夹
并将 JSR223Sampler 与 Groovy 和编译缓存 key 以及以下代码一起使用:
import java.text.SimpleDateFormat;
import java.util.TimeZone;
import java.util.Date;
SimpleDateFormat estFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
SimpleDateFormat gmtFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
TimeZone gmtTime = TimeZone.getTimeZone("GMT");
TimeZone estTime = TimeZone.getTimeZone("EST");
estFormat.setTimeZone(estTime);
gmtFormat.setTimeZone(gmtTime);
String endDate = vars.get("endDate");
Date endDateAsDate= estFormat.parse(endDate);
vars.put("dt1", gmtFormat.format(endDateAsDate));
然后您可以使用 ${dt1}
关于javascript - jmeter 将日期从 EST 转换为 UTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18007111/