在 JMeter 中,将日期字符串(如 2025-06-07 00:00:00)转换为时间戳(毫秒级),可以使用以下两种方法

发布于:2025-07-12 ⋅ 阅读:(32) ⋅ 点赞:(0)

在 JMeter 中,将日期字符串(如 `2025-06-07 00:00:00`)转换为时间戳(毫秒级),可以使用以下两种方法:

---方法 1:使用 **`__groovy`** 函数(推荐 ✅)
java
${__groovy(
    new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2025-06-07 00:00:00").getTime(),
)}
- **优点**:精确可靠,直接使用 Java 的日期解析能力。
- **说明**:
  - `SimpleDateFormat` 指定日期格式(`yyyy-MM-dd HH:mm:ss`)。
  - `parse()` 将字符串解析为 `Date` 对象。
  - `getTime()` 获取时间戳(毫秒)。

---方法 2:使用 **`__javaScript`** 函数(需注意时区 ⚠️)
```javascript
${__javaScript(
    new Date("2025-06-07T00:00:00").getTime(),  // 使用 "T" 替换空格,按 UTC 解析
)}
```或(显式指定 UTC):```javascript
${__javaScript(
    new Date("2025-06-07T00:00:00Z").getTime(),  // 末尾加 "Z" 表示 UTC
)}
```
- **注意事项**:
  - 必须将空格替换为 `T`(ISO 8601 格式)。
  - 默认按 **UTC 时区** 解析(末尾加 `Z` 可显式声明 UTC)。
  - 如果需按本地时区解析,需额外处理(不推荐,可能不一致)。

---

### 使用示例
1. **在 JMeter 脚本中直接调用**:  
   ```java
   // 使用 __groovy(结果:1749254400000)
   ${__groovy(new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2025-06-07 00:00:00").getTime())}
   ```

2. **存储为变量**:  
   ```java
   // 将时间戳存入变量 timestamp
   ${__setVar(timestamp, ${__groovy(new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2025-06-07 00:00:00").getTime())})}

---

### 时区说明
- **`__groovy` 方法**:默认使用 JMeter 运行环境的本地时区(可通过 `TimeZone` 参数调整)。
- **`__javaScript` 方法**:**默认按 UTC 解析**(使用 `T` 和 `Z` 确保一致性)。

> 💡 建议优先使用 `__groovy`,避免时区歧义。如需严格 UTC 时间,可在 `SimpleDateFormat` 中设置时区:
> ```java
> ${__groovy(
>   def sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
>   sdf.setTimeZone(java.util.TimeZone.getTimeZone("UTC"));
>   sdf.parse("2025-06-07 00:00:00").getTime(),
> )}
> ```


网站公告

今日签到

点亮在社区的每一天
去签到