将jmeter变量毫秒转换为格式化日期

时间:2017-03-10 14:51:15

标签: date formatting jmeter

我似乎无法转换从JSON中提取的日期(1488520800000),并将变量放入格式化日期(2017-03-02)。这是我的代码:

import java.text.*;
import java.util.*;

SimpleDateFormat source = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
SimpleDateFormat target = new SimpleDateFormat("yyyy-MM-dd");
Date date = source.parse(vars.get("varReviewDatevalue"));
String newDate = target.format(date);
vars.put("varFormattedReviewdateValue",newDate);

这是我得到的错误:

ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval       Sourced file: inline evaluation of: ``import java.text.*; import java.util.*;  log.info("value for variable:  14885208 . . . '' : Typed variable declaration : Method Invocation source.parse

奇怪的是,我得到了类似的代码,可以在2017年3月2日的提取日期中正常工作。我无法弄清楚为什么工厂代表的日期没有转换为日期。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我使用了错误的jmeter元素。这篇文章帮助了我很多:JMeter: Converting extracted time stamp value to date format

我将此代码放入JSR223采样器中,一切正常

import java.text.*;
long timeStamp =  Long.parseLong(vars.get("varReviewDatevalue"));
Date date = new Date(timeStamp); 
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

TimeZone tzInAmerica = TimeZone.getTimeZone("America/Denver");
formatter.setTimeZone(tzInAmerica);
String dateFormatted = formatter.format(date);
vars.put("varFormattedReviewdateValue", dateFormatted); 
log.info(dateFormatted);
log.info(vars.get("varFormattedReviewdateValue"));