前言
最近在做自己的一个记账项目,后端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/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date -R