我的Django应用程序(nginx,uwsgi堆栈)通过调用datetime.now()来请求当天:
def get_drinks(request, drink_type):
current_day = datetime.today().strftime("%w")
current_day_string = datetime.today().strftime("%A")
Run Code Online (Sandbox Code Playgroud)
我在我的网站上显示当天.由于一些奇怪的原因,它将在周五返回,而不是周四(今天).我的服务器时间是:
server:~$ date
Thu Apr 9 18:51:02 PDT 2015
Run Code Online (Sandbox Code Playgroud)
当我在python shell中运行datetime.now()时,我也会得到星期四:
>>> import datetime
>>> datetime.datetime.today().strftime("%A")
'Thursday'
Run Code Online (Sandbox Code Playgroud)
这是什么问题?
datetime.datetime.now()不知道时区所以获取系统本地时区的当前时间.你应该设置TIME_ZONE到America/Los_Angeles(PST/PDT),并USE_TZ以True让你的应用程序中创建的所有日期值始终是时区意识到,只要你从导入你的settings.py文件django.utils.timezone.
有关更多信息,请参阅时区文档.
TIME_ZONE = "America/Los_Angeles"
USE_TZ = True
Run Code Online (Sandbox Code Playgroud)
>>> 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>)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2891 次 |
| 最近记录: |