1

我正在使用 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_settingswww/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]'
4

1 回答 1

1

我懂了。make_aware返回默认时区的时间,和now- UTC。为了获得当地的当前时间,我需要做timezone.localtime(timezone.now()).

但文档建议处理时间和时区,如文本和编码 - 将所有内容存储在 UTC(unicode)中,并仅在接收或提供给用户时进行转换。

于 2015-11-17T11:04:23.400 回答