我试图在我的Django项目中创建一个时区设置为欧洲/罗马的记录。
当我创建模型对象时,我使用这个函数来设置时区:
MyModel.objects.create(
name="trial",
date=datetime_aware("2023-08-15")
)
然而,我遇到了一个问题,记录存储的日期是“2023-08-14”和UTC时区(GMT),尽管我努力将其设置为欧洲/罗马。
为此,我首先在www.example.com文件中设置以下值settings.py:
USE_TZ = True
TIME_ZONE = "Europe/Rome"
接下来,我写了一个函数来创建一个带有适当时区的datetime对象:
def datetime_aware(dt_string, timezone=settings.TIME_ZONE):
if dt_string:
dt = datetime.datetime.strptime(dt_string, "%Y-%m-%d")
dt_aware = make_aware(dt, pytz.timezone(timezone))
return dt_aware
return None
你能帮我找出哪里出了问题吗?
1条答案
按热度按时间taor4pac1#
在第一部分中,看起来你的Django项目使用的是默认时区,即使你单独设置时区,它也可能无法有效工作。在下面,你创建的函数看起来很好,可能是你传递给这里的字符串dt_string有问题:
这可能会有帮助