Javascript получает временную метку в системном часовом поясе не в UTC

Привет всем, кто ищет способ получить текущее системное время в метке времени. Я использовал это для получения метки времени:

new Date().getTime();

но он возвращает время в часовой пояс UTC, а не часовой пояс, используемый сервером

Есть ли способ получить временную метку с системным часовым поясом?

Ответ 1

Отъезд moment.js http://momentjs.com/

npm install -S moment

Новые объекты моментов по умолчанию имеют системное смещение часового пояса.

var now = moment()
var formatted = now.format('YYYY-MM-DD HH:mm:ss Z')
console.log(formatted)

Ответ 2

Так как getTime возвращает неформатированное время в миллисекундах с EPOCH, он не должен быть преобразован в часовые пояса. Предполагая, что вы ищете отформатированный вывод,

Вот запасное решение без внешних библиотек, из ответа на аналогичный вопрос:

различные методы toLocale…String предоставят локализованный вывод.

d = new Date();
alert(d);                        // -> Sat Feb 28 2004 23:45:26 GMT-0300 (BRT)
alert(d.toLocaleString());       // -> Sat Feb 28 23:45:26 2004
alert(d.toLocaleDateString());   // -> 02/28/2004
alert(d.toLocaleTimeString());   // -> 23:45:26

При необходимости могут быть предоставлены дополнительные параметры форматирования.

Ответ 3

Установите модуль "момент", используя:

npm install moment --save

И затем в коде добавьте следующие строки -

var moment = require('moment');
var time = moment();
var time_format = time.format('YYYY-MM-DD HH:mm:ss Z');
console.log(time_format);