[英]Get system time w/timezone in Django bypassing default timezone
只要我使用普通的'Python shell', datetime.datetime.now()
命令就可以正常工作以獲得系統的本地(非UTC)時間。
但是我正在開發一個Django項目,其中在settings.py
使用TIME_ZONE = 'UTC'
更改了時區。
我嘗試django.utils timezone
到tzlocal
模塊的許多解決方案,但它們都tzlocal
。 所有這些都返回錯誤或UTC時間。
如果我將settings.py
的時區更改為我的本地時區,則所有解決方案都有效。 但我不能這樣做,那么有沒有辦法繞過settings.py
的默認時區選項? 或者任何方式settings.py
的時區都可以自動更新? 如果我刪除TIME_ZONE
行,我不知道為什么,但它似乎得到一個隨機的時區。
編輯 -
我知道的是,時區可以手動輸入pytz
,但我並不想這樣做。 我想獲得本地系統時區,但沒有Django對時區的調節。
謝謝。
要獲得不同時區的時間,請使用以下代碼:
# create another timezone instance
import pytz
new_york_tz = pytz.timezone("America/New_York")
# get the current date and time, with the timezone set in your settings.py
from django.utils import timezone
d = timezone.now()
print(d)
# get the date and time in your other timezone
d2 = new_york_tz.normalize(d)
print(d2)
請參閱: https : //docs.djangoproject.com/en/1.10/topics/i18n/timezones/#naive-and-aware-datetime-objects
Django似乎將其時區放在TZ環境變量中。 嘗試del os.environ['TZ']
然后使用tzlocal。
您可以使用Javascript從瀏覽器獲取時區偏移到UTC。 這是代碼。
var d = new Date()
var n = d.getTimezoneOffset()
alert(n)
結果是分鍾數。 例如,你將在洛杉磯獲得480。 如果結果為負數,則時區應為“西”,相反,正數表示“東”。 AND 1時區= 60分鍾,所以,你可以算出480/60 = 8.然后結果是洛杉磯在西8時區。 然后你可以使用pytz來獲取當地時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.