#javascript #datetime #sequelize.js
Вопрос:
В моей настройке Sequelize я использую SQL Server
и настроил часовой пояс и диалектопции:
dialect: "mssql",
dialectOptions: {
useUTC: false,
dateStrings: true,
typeCast: true,
},
timezone: "Australia/Sydney"
У меня также есть код для преобразования формата даты:
const DataTypes = require("sequelize/lib/data-types")
DataTypes.DATE.prototype._stringify = function _stringify(date, options) {
date = this._applyTimezone(date, options)
return date.format("YYYY-MM-DD HH:mm:ss.SSS")
}
Запись даты, сохраняемая в базе данных, — это сиднейское время. Это то, чего я хочу. Однако при повторной записи выходные данные всегда загружаются в формате UTC, хотя на самом деле это сиднейское время. Например, то, что я сохранил в базе 2021-10-20 00:56:59
данных, и то, что я вывожу из модели 2021-10-20T00:56:59.277Z
. То, что я знаю, «Z» в конце означает нулевой часовой пояс, так что это время UTC. Как я могу сделать вывод без «Z», чтобы система могла знать, что это не время в формате UTC?