gpt4 book ai didi

python - datetime.now() 在 Django 应用程序中返回错误的日期

转载 作者:太空狗 更新时间:2023-10-30 02:03:41 24 4
gpt4 key购买 nike

我的 Django 应用程序(nginx、uwsgi 堆栈)通过调用 datetime.now() 请求当天:

def get_drinks(request, drink_type):
current_day = datetime.today().strftime("%w")
current_day_string = datetime.today().strftime("%A")

然后我在我的网站上显示当天。出于某种奇怪的原因,它将于周五返回,而不是周四(今天)。我的服务器时间是:

server:~$ date
Thu Apr 9 18:51:02 PDT 2015

当我在 python shell 中运行 datetime.now() 时,我也得到星期四:

>>> import datetime
>>> datetime.datetime.today().strftime("%A")
'Thursday'

这里有什么问题?

最佳答案

datetime.datetime.now() 不知道时区,因此获取系统本地时区的当前时间。您应该在 settings.py 中将 TIME_ZONE 设置为 America/Los_Angeles (PST/PDT) 并将 USE_TZ 设置为 True文件,以便只要您从 django.utils.timezone 导入,在您的应用程序中创建的所有日期值始终是时区感知的。

请参阅timezone文档以获取更多信息。

TIME_ZONE = "America/Los_Angeles"
USE_TZ = True

>>> from django.utils import timezone

>>> print timezone.now()
datetime.datetime(2015, 4, 10, 2, 17, 10, 839067, tzinfo=<UTC>)

>>> print timezone.localtime(timezone.now())
datetime.datetime(2015, 4, 9, 19, 17, 10, 839067, tzinfo=<DstTzInfo 'America/Los_Angeles' PDT-1 day, 17:00:00 DST>)

关于python - datetime.now() 在 Django 应用程序中返回错误的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29552082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com