Мне нужно преобразовать метку времени utc в местное время, используя смещение utc в секундах. я использовал библиотеку момент-часовой пояс. это мой код
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», я ошибся во времени. Какова фактическая проблема, связанная с этим кодом?
utcOffset
? Момент по умолчанию анализирует время по местному времени, если вам нужно преобразовать время в заданный часовой пояс, вы можете использоватьtz()
. - person VincenzoC   schedule 19.06.2017tz()
вместоutcOffset
. У вас может быть что-то вродеmoment(timestamp).tz("Asia/Kolkata")
дляIST
иmoment(timestamp).tz("America/Los_Angeles")
дляPDT
. См. здесь и здесь для тех же примеров. - person VincenzoC   schedule 19.06.2017