如何使用beanshell采样器在jmeter中转换datetime

时间:2017-11-07 18:32:02

标签: jmeter beanshell

我的http采样器的时间戳采用以下格式

Tue Nov 07 10:28:10 PST 2017

我需要将其转换为以下格式

11/07/2017 10:28:10

我尝试了不同的方法,但不知道我做错了什么。任何人都可以帮助我。谢谢。

2 个答案:

答案 0 :(得分:2)

它与how you'd do it in Java非常相似。

以下是一个例子:

import java.text.DateFormat;
import java.text.SimpleDateFormat;

String string = "Tue Nov 07 10:28:10 PST 2017";

// Original format to convert from
DateFormat formatFrom = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);

// Target format to convert to
DateFormat formatTo = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss", Locale.ENGLISH);

// Parse original string, using original format
Date date = formatFrom.parse(string);

// Convert to a target format
String result = formatTo.format(date);

// Just to show the output, not really necessary
log.info(result);

一个问题:由于目标格式省略了区域,因此将使用计算机的本地区域。例如,对于PST区域中的计算机,原始时间10:28:10 PST将转换为10:28:10,但对于EST区域中的计算机,它将转换为13:28:10

答案 1 :(得分:0)

我听到Groovy is the new black所以给出了:

    Groovy SDK中的
  1. Date类包含format()parse()方法
  2. 建议使用JSR223 Test Elements and Groovy language since JMeter 3.1
  3. 您可以在一行Groovy代码中获取转换日期,例如:

    Date.parse("EEE MMM dd HH:mm:ss zzz yyyy", 'Tue Nov 07 10:28:10 PST 2017').format("dd/MM/yyyy HH:mm:ss", TimeZone.getTimeZone('PST'))
    

    演示:

    JMeter Groovy Convert Date