Установка часового пояса, все еще получая неправильную дату - PullRequest
0 голосов
/ 14 февраля 2019

Привет! Я использую библиотеку моментов в node.js и устанавливаю часовой пояс.Тем не менее, даже после установки часового пояса, я все равно получаю неправильную дату, когда веду журнал консоли (это на день вперед).Вот мой пример кода и вывод ниже.

Код:

  const moment = require('moment-timezone');
  const log4js = require('log4js');
  let logger = log4js.getLogger();
  logger.level ='debug'
  let date1 = moment().tz("America/New_York").toDate()
  logger.debug(date1)

Вывод:

  [2019-02-13T21:09:48.019] [DEBUG] default - 2019-02-14T02:09:48.019Z

Обратите внимание, что дата на день опережает текущую фактическую дату.

1 Ответ

0 голосов
/ 14 февраля 2019

Это не случайно впереди, это UTC, это то, что обрабатывает в нативном Date JavaScript (и это то, что обеспечивает .toDate в данный момент):

const now = moment();
const tz1 = 'America/New_York';
const tz2 = 'Africa/Nairobi';

// false: toDate provides a *copy* of the underlying native Date object
console.log(now.tz(tz1).toDate() === now.tz(tz2).toDate());
// true despite not being the same TZ: the underlying native Date is UTC-based
console.log(now.tz(tz1).toDate().toString() === now.tz(tz2).toDate().toString());
...