您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – SqlAlchemy在保存之前将UTC DateTime转换为本地时间

5b51 2022/1/14 8:22:25 python 字数 2941 阅读 556 来源 www.jb51.cc/python

我有以下情况: ? – Postgres后端有一个字段 timestamp without time zone >在保存日期时间值之前,它看起来像:2014-09-29 06:00:00 00:00 >然后我从db加载相同的行,值为:2014-09-29 09:00:00 所以在数据库中,存储的日期不再是6AM ..但是9AM – 它在我当地时区转换. 我不明白发生了什么.为什么保存的日期转换为本

概述

timestamp without time zone

>在保存日期时间值之前,它看起来像:2014-09-29 06:00:00 00:00
>然后我从db加载相同的行,值为:2014-09-29 09:00:00

所以在数据库中,存储的日期不再是6AM ..但是9AM – 它在我当地时区转换.

我不明白发生了什么.为什么保存的日期转换为本地?

谢谢.

编辑

所以在@ univerio的回复后我尝试了一些东西:我从日期时间中删除了tzinfo

.replace(tzinfo = None)

现在日期保存正确 – 它不会调整到当地时间.我不太明白为什么所以我会暂时保留这个问题以防万一有人解释.

谢谢.

如果要将sqlAlchemy中的连接时区更改为UTC,请在创建引擎时执行以下操作:

engine = create_engine("...",connect_args={"options": "-c timezone=utc"})

这应该让您将该值读回为UTC中的天真日期时间.

编辑:@Peter文档没有说明如何做到这一点;我不得不阅读几个不同的文档并连接点:

>关于connect_argssqlAlchemy文档,它允许您将参数直接传递给DBAPI connect()
> connect上的psycopg2文档,它告诉您可以传递给libpq的额外参数
> options参数上的libpq文档,允许您在与libpq连接时传递命令行选项
>有关-c命令行开关的Postgresql文档,它允许您修改配置设置
>最后,关于您可以设置的timezone客户端设置的Postgresql客户端文档

总结

以上是编程之家为你收集整理的python – SqlAlchemy在保存之前将UTC DateTime转换为本地时间全部内容,希望文章能够帮你解决python – SqlAlchemy在保存之前将UTC DateTime转换为本地时间所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶