格式化日期时间特定时区

时间:2017-03-17 03:44:59

标签: javascript date-formatting javascript-globalize

我使用globalize格式化每个语言环境的日期时间。

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

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

2 个答案:

答案 0 :(得分:0)

here

被盗

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

/** 
 * 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分钟更为简单。

请告诉我这是否适合您!

答案 1 :(得分:-1)

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

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