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