如何使用时区以毫秒为单位将时间转换为不同的当地时间

我需要使用node.js或JavaScript将毫秒时间转换为特定的时区。

我有一个unix时间“1497678894647”。 我需要将其转换为当地时间的PDT,MDT,CDT,EDT,MST,EST和IST。

我有以下代码示例。

var timezoneJS = require('timezone-js'); var PDT = new timezoneJS.Date('1497680592200', 'America/New_York'); var MDT = new timezoneJS.Date('1497680592200', 'America/Chihuahua'); var CDT = new timezoneJS.Date('1497680592200', 'America/Havana'); var EDT = new timezoneJS.Date('1497680592200', 'America/Detroit'); var MST = new timezoneJS.Date('1497680592200', 'America/Creston'); var IST = new timezoneJS.Date('1497680592200', 'Asia/Kolkata'); console.log("PDT --> ", dt); console.log("MDT --> ", dt); console.log("CDT --> ", dt); console.log("EDT --> ", dt); console.log("MST --> ", dt); console.log("EST --> ", dt); console.log("IST --> ", dt); 

但是我得到这样的输出

 { _useCache: false, _tzInfo: {}, _day: NaN, year: NaN, month: NaN, date: NaN, hours: NaN, minutes: NaN, seconds: NaN, milliseconds: NaN, timezone: 'America/New_York', _dateProxy: Invalid Date, _timeProxy: NaN } { _useCache: false, _tzInfo: {}, _day: NaN, year: NaN, month: NaN, date: NaN, hours: NaN, minutes: NaN, seconds: NaN, milliseconds: NaN, timezone: 'America/Los_Angeles', _dateProxy: Invalid Date, _timeProxy: NaN } 

我需要像这样打印

 PDT --> Sat Jun 17 2017 11:46:54 MDT --> Sat Jun 17 2017 11:24:54 CDT --> Sat Jun 17 2017 11:45:54 EDT --> Sat Jun 17 2017 11:12:54 MST --> Sat Jun 17 2017 11:33:54 EST --> Sat Jun 17 2017 11:22:54 IST --> Sat Jun 17 2017 12:16:54 

是否有可能使用时区将unix时间戳转换为不同的当地时间?

我尝试过运行timezone-js软件包,但是在npm.runkit.com上不断出现错误,所以我决定向大家展示一个stream行的moment.js例子 。 它也有一个子模块moment-timezone

 npm install -S moment-timezone 

使用它很简单!

 const moment = require('moment-timezone'); let timestamp = moment(1497678894647); let NYTime = timestamp.tz('America/New_York').format('ddd MMM DY HH:mm:ss'); console.log(NYTime); 

哪些日志:

 "Sat Jun 17 2017 01:54:54" 

你可以在这里看到一个npm.runkit的例子。

编辑:

所以给你的console.log语句,你会传递他们的variables

 var moment = require('moment-timezone'); moment.defaultFormat = 'ddd MMM DY HH:mm:ss'; var PDT = moment('1497680592200').tz('America/New_York').format(); var MDT = moment('1497680592200').tz('America/Chihuahua').format(); var CDT = moment('1497680592200').tz('America/Havana').format(); var EDT = moment('1497680592200').tz('America/Detroit').format(); var MST = moment('1497680592200').tz('America/Creston').format(); var IST = moment('1497680592200').tz('Asia/Kolkata').format(); 

使用Javascript,您可以使用以下语法将date和时间转换为不同的时区

 var PDT = new Date(timestamp).toLocaleString('en-US', { timeZone: 'America/Los_Angeles' }); var MDT = new Date(timestamp).toLocaleString('en-US', { timeZone: 'America/Chihuahua' }); var CDT = new Date(timestamp).toLocaleString('en-US', { timeZone: 'America/Havana' }); var EDT = new Date(timestamp).toLocaleString('en-US', { timeZone: 'America/Detroit' }); var MST = new Date(timestamp).toLocaleString('en-US', { timeZone: 'America/Creston' }); 

希望这会工作