[英]Setting utc as default date timezone
I have installed and configured TypeORM successfully;我已经成功安装并配置了 TypeORM; I can add new records, search, etc. I'm trying to set default timezone to
UTC
for 4 hours... but without success我可以添加新记录、搜索等。我试图将默认时区设置为
UTC
4 小时……但没有成功
I have set node TZ config to UTC
and when I print console.log(process.env.TZ)
it returns UTC
as expected.我已将节点 TZ 配置设置为
UTC
,当我打印console.log(process.env.TZ)
它会按预期返回UTC
。
am I doing something wrong?难道我做错了什么? My "User" Entity code:
我的“用户”实体代码:
import {Entity, PrimaryGeneratedColumn, Unique, Column, CreateDateColumn, UpdateDateColumn, BaseEntity} from "typeorm";
@Entity()
//@Unique(['email'])
export class User extends BaseEntity {
@PrimaryGeneratedColumn("uuid")
id!: number;
@Column()
email!: string;
@Column()
password!: string;
@CreateDateColumn({name: 'created_at', type: 'timestamp'})
createdAt!: Date;
@UpdateDateColumn({name: 'updated_at',type: 'timestamp'})
updatedAt!: Date;
}
And connection config:和连接配置:
{
name: 'default',
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: 'supersecret',
database: 'multichat',
timezone: 'Z',
syncronize: true,
logging: false,
entities: [
'/var/www/html/projects/sluy/multichat/api_express/src/database/entities/**/*.ts'
],
migrations: [
'/var/www/html/projects/sluy/multichat/api_express/src/database/migrations/**/*.ts'
],
subscribers: [
'/var/www/html/projects/sluy/multichat/api_express/src/database/subscribers/**/*.ts'
],
cli: {
entitiesDir: '/var/www/html/projects/sluy/multichat/api_express/src/database/entities',
migrationsDir: '/var/www/html/projects/sluy/multichat/api_express/src/database/migrations',
subscribersDir: '/var/www/html/projects/sluy/multichat/api_express/src/database/subscribers'
}
}
It seems that TypeORM's connection option timezone
isn't working properly with mysql: https://github.com/typeorm/typeorm/issues/5895 . TypeORM 的连接选项
timezone
似乎无法与 mysql 正常工作: https : //github.com/typeorm/typeorm/issues/5895 。
What is probably happening is that your connection is getting the timezone info from the system.可能发生的情况是您的连接正在从系统获取时区信息。 You can verify this
SELECT @@session.time_zone;
你可以验证这个
SELECT @@session.time_zone;
. .
What worked for me was setting the timezone info manually upon starting the server:对我有用的是在启动服务器时手动设置时区信息:
await getManager().query(`SET time_zone = '+00:00';`)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.