Postman中将微秒级Unix时间戳转换为指定格式datetime的方法
给微秒级Unix时间戳新增格式化日期字段(Postman实现)
需求说明
给JSON响应中每个Trade对象新增DateTime字段,格式为DD/MM/YYYY HH:MM:SS.ssssss,保留原Timestamp字段(优先选方案a)。原始响应中的Timestamp为微秒级Unix时间戳(如1693582510115510)。
实现脚本(Postman Tests标签页)
将以下代码粘贴到Postman的Tests标签中,发送请求后会自动修改响应内容:
// 获取原始响应JSON数据 const responseData = pm.response.json(); // 遍历Ticks数组,处理每个Trade对象 responseData.Ticks.forEach(tickItem => { // 仅当Trade和Timestamp存在时处理 if (tickItem.Trade?.Timestamp) { // 拆分时间戳:秒部分用于创建Date,最后6位作为微秒 const timestamp = tickItem.Trade.Timestamp.toString(); const timestampSec = parseInt(timestamp.slice(0, -6), 10); const microseconds = timestamp.slice(-6); const date = new Date(timestampSec * 1000); // 格式化日期组件,补前导0确保两位 const day = String(date.getDate()).padStart(2, '0'); const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需+1 const year = date.getFullYear(); const hours = String(date.getHours()).padStart(2, '0'); const minutes = String(date.getMinutes()).padStart(2, '0'); const seconds = String(date.getSeconds()).padStart(2, '0'); // 拼接成目标格式的字符串 const formattedDateTime = `${day}/${month}/${year} ${hours}:${minutes}:${seconds}.${microseconds}`; // 新增DateTime字段到Trade对象 tickItem.Trade.DateTime = formattedDateTime; } }); // 更新响应显示为修改后的JSON pm.response.json(responseData);
关键逻辑说明
- 微秒精度保留:JavaScript的
Date对象仅支持毫秒级精度,因此直接从原始微秒时间戳字符串截取最后6位作为微秒部分,避免精度丢失。 - 日期格式化:通过
padStart方法确保日、月、时、分、秒均为两位数字,严格匹配格式要求。 - 批量处理:自动遍历
Ticks数组中的所有元素,处理每个包含Trade对象的条目。
效果示例
处理后响应中的Trade对象会新增DateTime字段:
"Trade": { "LastPrice": 73.6, "LastSize": 53798, "Timestamp": 1693582510115510, "DateTime": "01/09/2023 15:35:10.115510" }
内容的提问来源于stack exchange,提问作者catnap
相关产品推荐
相关产品推荐

