前言
最近在做自己的一个记账项目,后端nestjs中使用typeorm的mysql。当添加记录时,发现所以时间都相差了8小时。
后面查了一下资料发现因为默认 timezone 是用 UTC 的。所以只需要设置成我们自己的时区即可。
解决方法
方法1
ormconfig.json
{"type": "mysql","host": "localhost","port": 3306,"username": "","password": "","database": "development","entities": ["dist/**/*.entity{.ts,.js}"],"synchronize": true,"timezone": "+08:00" // 添加这一条}
方法2
修改mysql时区
set time_zone = '+8:00';
方法3
如果是在docker启动的,修改docker的时区
rm -rf /etc/localtimeln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtimedate -R
