如何在 Postman 中获取不同时区的本地时间?
How to get local time of different timezone in Postman?
我想获取罗马时区的当地时间。在此处的 postman 文档 postman_sandbox_api_reference
中未找到有关如何使用 moment 沙箱内置库的任何详细信息
到目前为止我尝试了什么
var moment = require('moment');
console.log(moment().tz(environment.TimeZone).format());
它抛出的错误 - TypeError | moment(...).tz is not a function
又一次尝试-
var moment = require('moment-timezone');
console.log(moment().tz(environment.TimeZone).format());
它抛出的错误 - Error | Cannot find module 'moment-timezone'
我哪里错了?谁能指出我正确的方向。
谢谢
Postman 只有 moment
库 built-in 而没有 moment-timezone
。
如果您正在做的不是 moment
文档的一部分,它就不会起作用。
作为获取数据的解决方法,您可以使用简单的第 3 方 API。
向此端点发出请求将为您提供一些您可以使用的时区数据。
http://worldtimeapi.org/api/timezone/Europe/Rome
这可以添加到 pre-request script
中的 pm.sendRequest()
以获取您需要的数据并在另一个请求中使用它。
pm.sendRequest("http://worldtimeapi.org/api/timezone/Europe/Rome", function (err, res) {
pm.globals.set("localTimeRome", res.json().datetime);
});
实际上,您可以编写一个简单的函数来获取其他时区的本地时间,只需要 moment
:
const moment = require('moment');
const TimeZoneUTCOffsetMapping = {
'America/Chicago': -6,
'Europe/Rome': 2,
'Asia/Shanghai': 8,
...
};
const LocalUTCOffset = 8;
function getMomentDisplayInTimeZone(momentObj, timeZone) {
let timeZoneUTCOffset = TimeZoneUTCOffsetMapping[timeZone];
if (timeZoneUTCOffset === undefined) {
throw new Error('No time zone matched');
}
return momentObj.add(timeZoneUTCOffset - LocalUTCOffset, 'hour').format('YYYY-MM-DDTkk:mm:ss');
}
console.log(getMomentDisplayInTimeZone(moment(), 'Europe/Rome'));
我想获取罗马时区的当地时间。在此处的 postman 文档 postman_sandbox_api_reference
中未找到有关如何使用 moment 沙箱内置库的任何详细信息到目前为止我尝试了什么
var moment = require('moment');
console.log(moment().tz(environment.TimeZone).format());
它抛出的错误 - TypeError | moment(...).tz is not a function
又一次尝试-
var moment = require('moment-timezone');
console.log(moment().tz(environment.TimeZone).format());
它抛出的错误 - Error | Cannot find module 'moment-timezone'
我哪里错了?谁能指出我正确的方向。
谢谢
Postman 只有 moment
库 built-in 而没有 moment-timezone
。
如果您正在做的不是 moment
文档的一部分,它就不会起作用。
作为获取数据的解决方法,您可以使用简单的第 3 方 API。
向此端点发出请求将为您提供一些您可以使用的时区数据。
http://worldtimeapi.org/api/timezone/Europe/Rome
这可以添加到 pre-request script
中的 pm.sendRequest()
以获取您需要的数据并在另一个请求中使用它。
pm.sendRequest("http://worldtimeapi.org/api/timezone/Europe/Rome", function (err, res) {
pm.globals.set("localTimeRome", res.json().datetime);
});
实际上,您可以编写一个简单的函数来获取其他时区的本地时间,只需要 moment
:
const moment = require('moment');
const TimeZoneUTCOffsetMapping = {
'America/Chicago': -6,
'Europe/Rome': 2,
'Asia/Shanghai': 8,
...
};
const LocalUTCOffset = 8;
function getMomentDisplayInTimeZone(momentObj, timeZone) {
let timeZoneUTCOffset = TimeZoneUTCOffsetMapping[timeZone];
if (timeZoneUTCOffset === undefined) {
throw new Error('No time zone matched');
}
return momentObj.add(timeZoneUTCOffset - LocalUTCOffset, 'hour').format('YYYY-MM-DDTkk:mm:ss');
}
console.log(getMomentDisplayInTimeZone(moment(), 'Europe/Rome'));