Sequelize仅以UTC格式读取日期时间

Ved*_*ran 1 mysql timezone datetime utc sequelize.js

我已经将timezone选项设置为我的时区(Europe/Zagreb我也尝试+01:00过),并且时间保存应该是,但是,当从数据库中读取时间时,Sequelize会将其转换为UTC.我曾尝试不同的时区也一样,每个正确保存,而是从数据库中读取时总是转换为UTC.

我做错了什么,或者这是一个已知的问题,是否有任何解决方法?

我创建了一个新的连接:

sequelize = new Sequelize(config.database, config.username, config.password, config);
Run Code Online (Sandbox Code Playgroud)

我的配置看起来像这样:

"development": {
    "username": "root",
    "password": "root",
    "database": "db",
    "host": "localhost",
    "dialect": "mysql",
    "timezone": "Europe/Zagreb"
}
Run Code Online (Sandbox Code Playgroud)

arp*_*nsu 8

你可以尝试这段代码,我有同样的问题,这对我有用.

const sequelize = new Sequelize(mysql.database, mysql.user, mysql.password, {
    host: mysql.host,
    port:3306,
    dialect:'mysql',
    define: {
      underscored: true,
      freezeTableName: true, //use singular table name
      timestamps: false,  // I do not want timestamp fields by default
    },
    dialectOptions: {
      useUTC: false, //for reading from database
      dateStrings: true,
      typeCast: function (field, next) { // for reading from database
        if (field.type === 'DATETIME') {
          return field.string()
        }
          return next()
        },
    },
    timezone: '+01:00'
});
Run Code Online (Sandbox Code Playgroud)

})

  • 谢谢,只是`dialectOptions` 中的`typeCast` 函数在我的例子中起到了作用。 (3认同)