Python 如何将PostgreSQL数据库中的时间戳转换为用户时区时间?
我在web应用程序中使用SQLAlchemy和PostgreSQL 我的SQLA模型(大致)定义如下:Python 如何将PostgreSQL数据库中的时间戳转换为用户时区时间?,python,postgresql,timezone,sqlalchemy,timestamp,Python,Postgresql,Timezone,Sqlalchemy,Timestamp,我在web应用程序中使用SQLAlchemy和PostgreSQL 我的SQLA模型(大致)定义如下: class MyModel(Base): ts_field = Column(DateTime(timezone=True)) # more here, obviously 我的web应用程序用户有一个时区属性,我尚未指定该属性的格式(这是问题的一部分),以确定如何向他们显示时间戳。显然,它们并不都在服务器的区域设置中,因此系统时区并不十分有用 我想有一种简单的方法,根据每个
class MyModel(Base):
ts_field = Column(DateTime(timezone=True))
# more here, obviously
我的web应用程序用户有一个时区
属性,我尚未指定该属性的格式(这是问题的一部分),以确定如何向他们显示时间戳。显然,它们并不都在服务器的区域设置中,因此系统时区并不十分有用
我想有一种简单的方法,根据每个用户选择的时区,为他们格式化时间戳
(我对时区转换的许多术语有点模糊,所以如果我问得含糊不清——我敢打赌我是!-请随意评论并帮助我澄清!)您可以使用来进行转换。您可以使用来进行转换。好的,当您创建带有时区的时间戳时(快捷方式名称TIMESTAMTTZ)pg创建时间戳,并在存储时将当前时区转换为GMT 当您将其拉出时,您可以将时区设置更改为您想要将其更改为其他偏移量的任何设置。例如:
smarlowe=# set timezone='est';
SET
smarlowe=# select now();
now
2010-11-30 00:38:32.683625-05
(1 row)
smarlowe=# set timezone='mst';
SET
smarlowe=# select now();
now
2010-11-29 22:38:48.293708-07
您可以使用“在时区”术语来缩短此时间:
smarlowe=# set timezone='mst';
SET
smarlowe=# select now();
now
-------------------------------
2010-11-29 22:40:15.854833-07
(1 row)
smarlowe=# select now() at time zone 'est';
timezone
----------------------------
2010-11-30 00:40:17.243828
无需反复设置每个时区,每次只需在语句中根据正确的时区进行设置。确定,当您使用时区(快捷方式名称TIMESTAMTZ)创建时间戳时,pg将创建一个时间戳,并在存储时将当前时区转换为GMT 当您将其拉出时,您可以将时区设置更改为您想要将其更改为其他偏移量的任何设置。例如:
smarlowe=# set timezone='est';
SET
smarlowe=# select now();
now
2010-11-30 00:38:32.683625-05
(1 row)
smarlowe=# set timezone='mst';
SET
smarlowe=# select now();
now
2010-11-29 22:38:48.293708-07
您可以使用“在时区”术语来缩短此时间:
smarlowe=# set timezone='mst';
SET
smarlowe=# select now();
now
-------------------------------
2010-11-29 22:40:15.854833-07
(1 row)
smarlowe=# select now() at time zone 'est';
timezone
----------------------------
2010-11-30 00:40:17.243828
无需反复设置每个时区,每次只需在语句中根据适当的时区设置即可。这很酷,但在检索此值之前,我如何在SQLAlchemy会话上设置它?(值得一提的是,我正在挂架中运行此功能)我不知道如何让SQLAlchemy执行任何操作。从未使用过它。这很酷,但在检索此值之前,我如何在SQLAlchemy会话上设置它?(值得一提的是,我正在挂架中运行此功能)我不知道如何让SQLAlchemy做任何事情。从来没用过。