Sequelize настроен правильно для хранения дат по местному времени («Америка / Чикаго» / -6: 00) в моей базе данных MS SQL Server, но когда я их получаю, они отображаются в UTC.
В моих настройках соединения Sequelize у меня есть timezone: 'America/Chicago'
и useUTC: false
в dialectOptions.Насколько я понимаю, эти две настройки должны гарантировать, что мои даты хранятся и извлекаются в моем местном часовом поясе.
Я также установил переменную окружения TZ на «Америка / Чикаго» перед запуском моего узла / экспресс-приложения.
Параметры подключения My Sequelize:
const sequelize = new Sequelize('db', 'user', 'pass', {
host: 'host',
dialect: 'mssql',
timezone: 'America/Chicago',
dialectOptions: {
encrypt: false,
useUTC: false
},
operatorsAliases: false,
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
});
Даты, правильно сохраненные в базе данных:
myDate: '2018-11-07 00:00:00 -06:00'
createdAt: '2018-12-08 13:46:17.617 -06:00'
updatedAt: '2018-12-08 13:46:17.617 -06:00'
Возвращено Sequelize через Postman с использованием конечной точки API:
{
"mydate": "2018-11-07T06:00:00.000Z",
"createdAt": "2018-12-08T19:46:17.617Z",
"updatedAt": "2018-12-08T19:46:17.617Z"
}
В моем app.js я выводлю process.env.TZ:
console.log(`Starting app. TZ set to ${process.env.TZ}`);
// Starting app. TZ set to "America/Chicago"
Виноват Tedious или Sequelize в возврате дат в UTC или я что-то не так делаю?
Кроме того, почему myDate возвращается с '.000Z' в качестве часового пояса, но создается и обновляется. Возвращается с '.617Z' в качестве часового пояса?Оба возвращают UTC, так как проверка дат действительно на 6 часов опережает мое местное время.Я понимаю «.000Z», но ничего не могу найти о «.617Z».
Любые подсказки будут с благодарностью!