使用offset以秒为单位将utc时间戳转换为本地时间

时间:2017-06-19 08:19:04

标签: javascript node.js datetime momentjs timezone-offset

我需要使用utc offset(以秒为单位)将utc timestamp转换为本地时间。我曾使用过时区库。这是我的代码

var moment = require('moment-timezone');

var timestamp = Date.now();

var IST1 = moment(timestamp).utcOffset('+05:30').format('ddd MMM D Y hh:mm:ss A ')
console.log("IST1 '+05:30' --> ", IST1);

var IST2 = moment(timestamp).utcOffset('+19800').format('ddd MMM D Y hh:mm:ss A ')
console.log("IST2 '+19800' --> ", IST2);

但我有这样的输出

IST1 '+05:30' -->  Mon Jun 19 2017 01:39:23 PM 
IST2 '+19800' -->  Tue Jun 20 2017 04:29:23 AM

使用' +05:30',我得到了正确的时间。但是使用' + 19800' ,我错了时间。与此代码相关的实际问题是什么?

1 个答案:

答案 0 :(得分:1)

Moment docs开始,函数utcOffset看起来像是参数而不是秒。

尝试使用

var IST2 = moment(timestamp)
    .utcOffset('+330')
    .format('ddd MMM D Y hh:mm:ss A ')

它应该有用。