Jiang's Tech Journal

Jiang's Tech Journal

首页
分类
关于
Login →
Jiang's Tech Journal

Jiang's Tech Journal

首页 分类 关于
Login
  1. Home
  2. TypeOrm中设置时区为上海

TypeOrm中设置时区为上海

0
  • Published at 2024-11-14
  • Read 166 times
Jiang
Jiang
Table of Contents
No Table of Contents

在 MySQL 中执行以下命令:

-- 设置全局时区
SET GLOBAL time_zone = '+8:00';
-- 设置当前会话时区
SET time_zone = '+8:00';
-- 刷新权限
FLUSH PRIVILEGES;

然后在你的 TypeORM 配置中(通常在 app.module.ts):

TypeOrmModule.forRoot({
  type: 'mysql',
  // ... 其他配置 ...
  timezone: '+08:00',        // 设置时区偏移
  dateStrings: true,         // 日期以字符串形式返回
  charset: 'utf8mb4',
})

实体配置保持简单:

// ... existing code ...

@Entity()
export class sysRole {
  // ... existing code ...

  @CreateDateColumn({
    comment: '创建时间',
    type: 'datetime',
    nullable: true,
  })
  create_time: Date;

  @UpdateDateColumn({
    comment: '更新时间',
    type: 'datetime',
    nullable: true,
  })
  update_time: Date;

  // ... existing code ...
}

这样设置后,所有的时间都会正确显示为北京时间。你可以通过以下 SQL 命令验证时区设置是否生效:

-- 查看当前时区设置
SHOW VARIABLES LIKE '%time_zone%';
-- 查看当前时间
SELECT NOW();

好了!

Table of Contents
No Table of Contents
Copyright © 2024 your company All Rights Reserved. Powered by Halo.