NestJS与Prisma时区问题:Timestamptz存储后返回GMT格式
关于NestJS + Prisma查询返回GMT时间的原因解析
Prisma客户端的默认行为
Prisma在读取timestamptz类型字段时,会自动把数据库里带时区的时间转成UTC(GMT)格式的ISO 8601字符串返回。这是因为JavaScript的Date对象本身基于UTC时间戳存储,Prisma遵循这个特性,统一返回标准UTC格式(带Z后缀),确保跨时区场景下时间处理的一致性。数据库与客户端的时区转换逻辑
你用@db.Timestamptz(5)确实让数据库存储了带时区信息的时间,但Prisma客户端读取时会做一层统一转换——把任意时区的时间转成UTC返回。这种设计是为了避免不同时区环境下时间展示混乱,让业务层可以拿到标准时间后,再按需转成对应本地时区。NestJS本身不影响时间格式
NestJS框架不会主动修改Prisma返回的时间格式,除非你在DTO、拦截器或者管道里自定义了处理逻辑。你看到的GMT格式时间,根源就是Prisma客户端的默认处理规则。
内容的提问来源于stack exchange,提问作者Muhammad Ali
相关产品推荐
相关产品推荐

