我正在使用TestCase.client来测试我的观点。当我从测试用例致电timezone.now()
时,我会看到2015-11-17 07:48:26.826661 + 00:00 ,但是当我致电
start = timezone.make_aware(datetime.strptime(
date_text + ' ' + time,
'%y/%m/%d %H:%M'
))
从查看我得到2015-11-17 07:36:00 + 02:00 。
如何让他们使用相同的时区?
我正在使用./manage.py test --settings=www.tests_settings
和www/tests_settings.py
包含以下内容:
from .settings import *
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
}
}
USE_TZ = True
TIME_ZONE = 'Europe/Kiev'
>>> django.__version__
'1.8.4'
>>> pytz.__version__
'2015.7'
>>> sys.version
'3.4.3 (default, Mar 26 2015, 22:03:40) \n[GCC 4.9.2]'
答案 0 :(得分:0)
哦,我明白了。 make_aware
以默认时区返回时间,now
- 以UTC格式返回。要获得当地时间,我需要timezone.localtime(timezone.now())
。
但文档建议处理时间和时区,如文本和编码 - 以UTC(unicode)存储所有内容,并仅在接收或提供给用户时进行转换。