Positco возвращает неправильную метку времени, чем то, что передается с psycopg2 - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть простой скрипт, который передает метку времени в базу данных 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 записью в базу данных?

...