如何在 Postman 预请求中获得此特定日期格式

wlp8pajw  于 2022-12-29  发布在  Postman
关注(0)|答案(2)|浏览(255)

我有这个在c#:

var date = DateTime.UtcNow.ToString("R", CultureInfo.InvariantCulture);

结果是这样的

date = "Tue, 27 Dec 2022 13:30:35 GMT";

我想在 Postman 的预请求中得到这个结果,把这个变量作为date传递,但是这个命令没有给予我确切的结果:

var date = new Date();
//result:  Tue Dec 27 2022 16:26:00 GMT+0100 (Central European Standard Time)

因为我使用这个日期变量来加密,所以把它做成我在c#中使用的特殊格式是很重要的。
你知不知道我怎么会在《 Postman 》里有这样的结果?

nuypyhwy

nuypyhwy1#

要显示时间,可以使用momentjs,它已经包含在postman中了,缺点是它不支持时区,所以代码应该是:

const moment = require('moment')
let datetime = moment().format("ddd, DD MMM YYYY HH:mm:ss ") + "GMT"
//Wed, 28 Dec 2022 08:08:36 GMT
vlf7wbxs

vlf7wbxs2#

pre-request节中使用reg表达式

var date = new Date();
// Tue Dec 27 2022 12:10:39 GMT-0500 (Eastern Standard Time)
console.log(date);
let match = /(Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2})\s+(\d{4})\s+(\d{2}|\d{1})\:(\d{2})\:(\d{2})\s([a-zA-Z]{3})/.exec(date);
// 0: "Tue Dec 27 2022 12:10:39 GMT"
// 1: "Tue"
// 2: "Dec"
// 3: "27"
// 4: "2022"
// 5: "12"
// 6: "10"
// 7: "39"
// 8: "GMT"
// newDate = "Tue, 27 Dec 2022 13:30:39 GMT";
newDate = `${match[1]}, ${match[3]} ${match[2]} ${match[4]} ${match[5]}:${match[6]}:${match[7]} ${match[8]}`
console.log(newDate);

控制台结果

Tue Dec 27 2022 12:22:39 GMT-0500 (Eastern Standard Time)
 
Tue, 27 Dec 2022 12:22:39 GMT

https://regex101.com/中设置测试字符串
正则表达式

(Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2})\s+(\d{4})\s+(\d{2}|\d{1})\:(\d{2})\:(\d{2})\s([a-zA-Z]{3})

注册表内表达可视化https://regexper.com/

相关问题