【问题标题】:Error in saving timezone in Postgresql在 Postgresql 中保存时区时出错
【发布时间】:2018-12-15 21:01:56
【问题描述】:

尝试使用 Python 在 PostgreSQL 中保存日期,它为我的时区提供了 UTC+2,而它是 UTC+1(不要介意差异,我只是使用 Python 测试来了解时区的情况)

In [8]: datetime.datetime.now(pytz.timezone("Africa/Algiers"))
Out[8]: datetime.datetime(2018, 7, 7, 15, 27, 43, 756977, tzinfo=<DstTzInfo 'Africa/Algiers' CET+1:00:00 STD>)

在 PostgreSQL 上,我得到了

2018-07-07 14:28:04.144505+02

这就像 postgresql 增加了夏令时,而我们在阿尔及利亚没有它?

注意:我使用asyncpg

【问题讨论】:

标签: python postgresql timezone asyncpg


【解决方案1】:

基于 Raymond Nijland 的 answer,该方法有效,方法如下(来自 PGAdmin 4) 原因是操作系统强制使用自己的时区,而不是保存 Python 给他的那个。

只需在 SQL 提示符下运行这三个命令:

要获取 PG 使用的时区,

SHOW timezone ;

获取所有可用的时区以及 PG 如何命名它们

SELECT * FROM pg_timezone_names ;

设置正确的时区

ALTER DATABASE yourDataBase SET timezone TO 'Africa/Algiers';

重启服务

sudo systemctl restart postgresql-10.service 

注意:即使您使用moment.js,您也需要添加.zone(+0100) 提及here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 2013-12-15
    • 1970-01-01
    • 2018-01-23
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多