javascript - Typeorm 查找方法返回错误的时间戳时间
问题描述
所以,我使用的是 express + typeorm + postgresql,当我在数据库中保存一个实体时,时间戳列会获得正确的 UTC 日期,但是,当我从数据库中获取数据时,返回的每个时间戳都会增加 3 个小时。到底是怎么回事?为什么检索的日期与 DB 中的日期不完全相同?任何帮助都感激不尽。
解决方案
数据库和服务器的时区之间可能存在差异。要使其正常化,您可以将两者都设置为“UTC”时区并使用它。
PostgreSQL 的时区:
// get
show timezone;
// set
SET TIMEZONE='UTC';
服务器的时区:
// get
console.log(process.env.TZ)
// set
process.env.TZ = 'UTC'
另一种解决方案是对从数据库返回的数据使用typeorm
's @Column
decorator API 的转换器方法。此方法将从数据库中获取数据作为输入,并将其转换后返回。
@Column({
transformer: {
from(value: DatabaseType): EntityType,
to(value: EntityType): DatabaseType
}
})
someDate: Date;
推荐阅读
- java - 带有正则表达式的 Java 车牌
- html - 带有独立滚动框的 CSS 网格布局
- amazon-web-services - 在终端上安装 aws amplify init 时出现错误
- c# - 使用图形调整棋盘大小
- javascript - 无法通过 vh/vw 进行翻译 - 我需要它来响应,如何将 vh/vw 转换为 px?
- docker - 从 docker 容器访问私有存储库作为 npm 依赖项
- javascript - Mapbox GL Js - 在querySourceFeatures中看不到source.setData
- sql - 带有 sum 的 IF 或 CASE 语句
- c# - 将 PNG 转换为 GIF 或 JPG
- python-3.x - 如何在现有字典中添加新键并在 python 中从中派生嵌套字典?