格式化日期时间特定时区

format datetime specific timezone

我正在使用全球化来格式化每个语言环境的日期时间。

var Globalize = require('globalize');
var formatter = Globalize('en-US').dateFormatter();
formatter(new Date());

效果很好,但我想知道是否可以为特定时区设置日期格式。这样,它总是在本地机器时区格式化日期。 例如,假设我的机器时区是 PST。我可以使用全球化来格式化 EST 中的日期吗?

盗自 here

此解决方案通过使用 getTimeOffset()(其中 return 是 UTC 时间与本地时间之间的时差,以分钟为单位)函数来查找 UTC给定位置的时间偏移并将其更改为毫秒,然后执行从 UTC 计算到 return 不同时区的时间。

/** 
 * function to calculate local time
 * in a different city
 * given the city's UTC offset
 */
function calcTime(city, offset) {

// create Date object for current location
var d = new Date();

// convert to msec
// add local time zone offset
// get UTC time in msec
var utc = d.getTime() + (d.getTimezoneOffset() * 60000);

// create new Date object for different city
// using supplied offset
var nd = new Date(utc + (3600000*offset));

// return time as a string
return "The local time in " + city + " is " + nd.toLocaleString();
}

此解决方案可行,但以分钟表示时区并调整 UTC 分钟更简单。

请告诉我这是否适合您!

javascript 函数 new date() 根据调用该函数时的机器时间生成一个 date/time 标记。因此,如果该函数由位于阿拉斯加的机器调用,它将根据当时阿拉斯加的当前时间生成一个 date/time 戳记。

w3school.com 对大多数与编码相关的项目都有很好的参考。您可以找到问题的答案 here.