我想在数据库中保存当前日期,但是我的Django服务器比当前时间早13个小时开始。因此,当我使用以下命令时,时间也在变化:
datetime.datetime.now()
我使用Python 2.7.5与Django 1.5.4。如何使用django
..显示当前系统日期?
如果您的服务器日期和时间错误,请尝试先修复它。如果它们是正确的,则可以在settings.py
中添加时区值:
USE_TZ = True
TIME_ZONE = 'UTC'
查看http://en.wikipedia.org/wiki/List_of_tz_database_time_zones获取有效时区列表
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Kolkata'
USE_I18N = True
USE_L10N = True
USE_TZ = False
这是为我设置印度时区
有几个选项:
In settings.py
:
正如一位用户评论的那样,从技术上讲,可以设置TIME_ZONE = None
,这将默认为您的物理计算机时间,当尝试部署服务器或将项目上传到远程机器以为您提供服务时,这将是一个真正的问题。例如,如果您使用TIME_ZONE = None
将项目部署在amazon服务器上,那么您最终可能会获得托管服务器的物理机器的系统时间。
必须选择有效的tz
数据库时间。如果您查看下面页面的TZ
列:tz数据库时区,您可以使用这些值中的任何一个。
注意:如果您的用户从您的时区以外的时区(国家或世界的不同地区)连接,或者在您手动设置的时区之外,手动设置单个tz
数据库时区可能会受到限制。
在这种情况下,你必须(1)让用户注册提供他们的时区,并修改你的代码,或者(2)导入django。Utils timezone,参见本页:django timezone模块文档。另一种选择是(3)构建一个地理定位器,它在用户加载页面时自动获取用户的经纬度位置,并根据这些信息生成时区。请注意,部署应用程序后为用户调整时区比为本地构建和测试设置时区要复杂得多。