我的数据库中带有时区的时间戳记。这些总是在UTC中创建。
我需要向欧洲/柏林的用户显示时间。现在,我需要在所有地方使用JS或Jinja2修改时间以显示正确的时间。我觉得应该有一个全球解决方案,但是我找不到。
这是一个示例(模型):
new_user = User(date_added=datetime.today())
这是创建用户的代码:
db_session.execute("SET SESSION time_zone = 'Europe/Berlin'")
这在数据库中看起来像这样:
一旦我使用MySQL DB,并且正在使用它:
<<<
posgreSQL是否有类似的东西?
答案 0 :(得分:0)
我认为您的数据库应该与时区无关。我通常在显示来自PostgreSQL数据库的日期时间之前调用此函数:
from pytz import timezone, UTC
def to_user_timezone(dt):
"""Convert a datetime object to the user's timezone. If you need
to convert a :class:`datetime.datetime` object at any time to the user's
timezone (as returned by :func:`get_timezone` this function can be used).
"""
if dt.tzinfo is None:
dt = dt.replace(tzinfo=UTC)
tzinfo = timezone('Europe/Berlin')
return tzinfo.normalize(dt.astimezone(tzinfo))