我有一个简单的脚本,它将时间戳传递到 Postgres 数据库中。我正在使用 Postico 查看数据库。
我正在尝试传入一个 UTC 值,我的意思是我希望数据库将所有值存储在 +00 时区。我正在使用timestamptz
数据库中的条目。
在写入数据库之前,我正在打印正在写入的值。Python 控制台返回:
2018-11-21 10:03:06+00:00
但是当我在 Postico 上查看它时,我得到:
2018-11-21 11:03:06+01
.
为什么 Positco 返回的内容与正在编写的内容不同?代码如下:
import time
import psycopg2
import datetime
def write_to_db(entry):
conn = psycopg2.connect("dbname=testing user=tester")
cur = conn.cursor()
print(entry)
cur.execute("INSERT INTO test (ts) VALUES (%s)", (entry, ))
conn.commit()
cur.close()
conn.close()
def main():
dt = datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc).replace(microsecond = 0)
write_to_db(dt)
if __name__ == '__main__':
main()
编辑
从数据库中读取返回以下内容:
(datetime.datetime(2018, 11, 21, 11, 3, 6, tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=60, name=None)),)
所以也许这是psycopg2
写入数据库的问题?