Неправильная дата в Node.js - PullRequest
0 голосов
/ 12 января 2020

Я перепробовал все решения, которые нашел здесь, но ни одно из них не работает. Я просто пытаюсь:

var a = new Date();
console.log(a);
//2020-01-12T05:05:17.320Z

//Time in my timezone: 2020-01-12T02:05:17.320Z

Я из Бразилии, o часовой пояс -3: 00

Я уже установил момент. js и попробовал:

var moment = require('moment-timezone');
moment().tz("America/Sao_Paulo").format();

var a = new Date();
console.log(a);

но я продолжаю получать без моего часового пояса. Я также попытался установить TZ без момента. js и не сработало.

Я не могу использовать какое-то решение, которое меняет способ вызова "new Date ()", потому что мне нужно проанализировать строку к объекту, который содержит Date, и я использую модуль Prompts, который получает дату из консоли, которая уже возвращает дату. Я не знаю, что делать дальше.

Спасибо за любую помощь.

* Я работаю на Windows, и время настало, конфигурация указывает вправо часовой пояс

edit1: больше информации

1 Ответ

1 голос
/ 12 января 2020

Ты очень близко. Moment - это библиотека Javascript, которая упрощает форматирование времени. Вы создаете свой моментальный объект, но не выводите его.

Я сделал очень небольшое изменение (2-я строка), и он работает как положено:

var moment = require('moment-timezone');
console.log(moment().tz("America/Sao_Paulo").format());

Если вы хотите его красиво отформатирован, смотрите эту страницу: https://momentjs.com/.

Например:

console.log(moment().tz("America/Sao_Paulo").format('lll'));
// output: Jan 12, 2020 2:45 AM

Как это работает?

moment() создает объект времени (точно так же как new Date(), но это особый объект времени момента). .tz() вызывает функцию часового пояса, и мы присваиваем ей ваш часовой пояс в виде строки "America / Sao_Paulo". .format() затем выводит его в красивой пользовательской строке. console.log() выводит всю строку на экран.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...