0
我有一個很難理解的時區是如何工作在Django,所以我在django/utils/timezone.py看了看源代碼,我發現下面的代碼:Django時區現在,我錯過了什麼?
def now():
"""
Returns an aware or naive datetime.datetime, depending on settings.USE_TZ.
"""
if settings.USE_TZ:
# timeit shows that datetime.now(tz=utc) is 24% slower
return datetime.utcnow().replace(tzinfo=utc)
else:
return datetime.now()
而且我真的不明白,爲什麼提供tzinfo不依賴於settings.py的TIME_ZONE。
它不應該是這樣的呢?
return datetime.utcnow().replace(tzinfo=get_default_timezone())
這種方式timezone.now()真的是時區感知,不是嗎?
「Django以UTC來存儲所有日期時間」。這並不準確。 Django doesn; t總是這樣做 –
感謝指出這@MihaiZamfir。我已經更新了答案。 – v1k45
從源代碼中,UTC類似乎是一個虛擬的「返回0偏移量」,但我想我現在明白了,謝謝! – Nezo