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

本教程将介绍Sequelize 仅以 UTC 格式读取日期时间的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

Sequelize 仅以 UTC 格式读取日期时间 教程 第1张

问题描述

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

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

我创建了一个新的连接:

sequelize = new Sequelize(config.database, config.username, config.password, config);

我的配置看起来像这样:

"development": {
 "username": "root",
 "password": "root",
 "database": "db",
 "host": "localhost",
 "dialect": "mysql",
 "timezone": "Europe/Zagreb"
}

推荐答案

你可以试试这个代码,我遇到了同样的问题,这对我有用.

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'
});

好了关于Sequelize 仅以 UTC 格式读取日期时间的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。