如何在邮递员中将{{$ timestamp}}格式化为MM / DD / YYYY?


79

在Postman中,动态变量 {{$timestamp}}将当前Unix时间戳插入请求中。(表示为自1970年1月1日以来的秒数)

"currentTime": "1510934784"

但是,我正在使用的API需要将时间戳格式化为MM/DD/YYYY

"currentDate": "11/17/2017"

如何在MM/DD/YYYYPostman的请求中插入当前日期(格式为)?


您可以在请求前脚本选项卡中编写JS代码来这样做
chakradhar kasturi

@chakri您可以用答案更详细地解释吗?
Stevoisiak

2
在请求前脚本选项卡中添加以下代码,postman.setEnvironmentVariable("$$timestamp",new Date()); 并在您的请求中使用即可{{$$timestamp}}
chakradhar kasturi

Answers:


122

您可以将moment.js与Postman一起使用以提供该时间戳格式。

您可以将其添加到请求前脚本中:

const moment = require('moment');
pm.globals.set("today", moment().format("MM/DD/YYYY"));

然后{{today}}在任何需要的地方参考。

如果将其添加到中Collection Level Pre-request Script,它将针对中的每个请求运行Collection。无需将其单独添加到所有请求中。

有关moment在Postman中使用的更多信息,我写了一篇简短的博客文章:https : //dannydainton.com/2018/05/21/hold-on-wait-a-moment/


这不可能是真的..邮递员没有对现在加载外部库的支持:github.com/postmanlabs/postman-app-support/issues/1180
abbood

呼呼非常好。这将有助于丢失之前和之后的脚本。谢谢
Pablo Palacios

5
为防止名称冲突,您可能需要使用其他名称,例如{{today}}{{datestamp}}
Stevoisiak

当然,这纯粹是您如何使用它的一个示例。变量名显然需要适合您自己的需求/上下文或您在做什么,只是将我的示例复制并粘贴到您的解决方案中……这从来都不是一件好事。:)
Danny Dainton

44

使用“预请求脚本”标签来编写JavaScript,以获取日期并将其保存到变量中:

const dateNow= new Date();
pm.environment.set('currentDate', dateNow.toISOString());

然后在请求正文中使用它,如下所示:

"currentDate": "{{currentDate}}"

5
必须有一种获取日期的方法,而无需为每个请求修改预请求脚本。真是疯了
Triynko

3
您可以一次性设置全局变量并读取其他位置。
摩根·凯尼恩

2
将请求放入文件夹或集合中,然后可以在文件夹或集合的
前言中

请参阅上面的答案。它显示了如何在集合上设置前言,因此您不必将其放入每个单独的请求中。
DeadlyChambers

邮递员现在支持{{$ isoTimestamp}},输出:“ 2020-09-16T18:11:41.397Z”
Lance

8

我的解决方案类似于Payam的解决方案,除了我使用的是

//older code
//postman.setGlobalVariable("currentDate", new Date().toLocaleDateString());
pm.globals.set("currentDate", new Date().toLocaleDateString());

如果您点击文件夹上的“ 3点”,然后单击“编辑”

在此处输入图片说明

然后为所有调用设置“预请求脚本”,以便全局变量始终可用。

在此处输入图片说明


1
您也可以使用-pm.globals.set("currentDate", new Date().toLocaleDateString());这样是否不会以“ DD / MM / YYY”而不是“ MM / DD / YYYY”的格式给您一个时间戳?
丹尼·丹顿

5

JavaScript中的任何将来日期(邮递员测试使用JavaScript)都可以通过以下方式检索:

var dateNow = new Date();  
var twoWeeksFutureDate = new Date(dateNow.setDate(dateNow.getDate() + 14)).toISOString();

postman.setEnvironmentVariable("future-date", twoWeeksFutureDate);

0

在PostMan中,我们有->预请求脚本。粘贴下面的代码段。

const dateNow = new Date();
postman.setGlobalVariable("todayDate", dateNow.toLocaleDateString());

现在我们可以使用了。

{
"firstName": "SANKAR",
"lastName": "B",
"email": "SANKARB@GMAIL.COM",
"creationDate": "{{todayDate}}"
}

如果您使用的是JPA实体类,请使用以下代码段

    @JsonFormat(pattern="MM/dd/yyyy")
    @Column(name = "creation_date")
    private Date creationDate;

在此处 输入图像描述在此处输入图像描述

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.