我需要使用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时间戳转换为不同的本地时间?
答案 0 :(得分:1)
我尝试运行timezone-js
包,但在npm.runkit.com中一直收到错误,
所以我决定用流行的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 D Y HH:mm:ss');
console.log(NYTime);
哪些日志:
"Sat Jun 17 2017 01:54:54"
您可以在npm.runkit here上看到一个示例。
修改强>
所以给定你的console.log语句,你会传递像
这样的变量var moment = require('moment-timezone');
moment.defaultFormat = 'ddd MMM D Y 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();
答案 1 :(得分:1)
使用Javascript,您可以使用以下语法将日期和时间转换为不同的时区
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' });
希望这会起作用