您好我在Django的 與datetime
對象的工作是新我現在所知道的是,而不是Python的datetime.datetime.now()
我們應該使用Django的timezone.now()
,我還設置TIMEZONE
和USE_TZ=True
settings.py中 但我的問題是現在轉換這些類型的時間。據我所知,即使我們使用timezone.now()
保存在數據庫中,django使用UTC時間來存儲在數據庫中。所以我需要一個簡單的語法來將UTC時間轉換爲在settings.py中設置的本地時間,反之亦然,以便從本地時間獲取本地時間並返回本地時間。 我也看到,django有一些模板標籤來做到這一點,但因爲我主要是爲了一個REST API而使用django-rest
,所以我需要能夠在python語法中做到這一點。 感謝大家,我希望我可以在我的意思:)在Django的轉換時間
0
A
回答
0
如果清楚,settings.py中,我們有以下幾點:
from pytz import timezone
LOCAL_TZ = pytz.timezone('CST6CDT') # asume that local timezone is central, but you can use whatever is accurate for your local
現在,你可以用它來從UTC時間轉換爲本地
import pytz
from django.conf import settings
def to_local_dttm(utc_dttm):
return utc_dttm.astimezone(settings.LOCAL_TZ)
def to_utc_dttm(local_dttm):
return local_dttm.astimezone(pytz.utc)
0
在模板中,Django會自動將模型日期(存儲爲UTC)轉換爲當前時區。當前時區由settings.TIMEZONE
設置,除非您明確將其更改爲別的地方。你甚至不需要使用特殊的模板標籤。這將罰款轉換:
{{ MyModel.my_date }}
模板以外,還有一個叫localtime
,您可以用做同樣的轉換工具。
from django.utils.timezone import localtime
...
local_date = localtime(MyModel.my_date)
print(str(MyModel.my_date)) # UTF time
print(str(local_date)) # local time
通過localtime
返回的日期時間是time zone aware。如果你需要一個時區天真的日期時間,你可以將它轉換是這樣的:
my_date = localtime(MyModel.my_date).replace(tzinfo=None)
相關問題
- 1. Django UTC時間不轉換
- 2. 在Django中轉換並轉換回日期時間
- 3. 轉換的時間
- 4. 時間轉換
- 5. 時間轉換
- 6. 轉換時間UNIX時間
- 7. 轉換Unix時間在MySQL
- 8. 在R轉換UTC時間
- 9. 在時區之間轉換
- 10. 轉換時間戳在Python
- 11. 轉換日期時間轉換怪異的時間
- 12. Unix時間戳的時間轉換
- 13. 時區之間的時間轉換
- 14. 轉換時區之間的時間
- 15. 在Django中如何將日期時間轉換爲毫秒級?
- 16. 轉換時間戳
- 17. PHP時間轉換
- 18. 轉換時間戳
- 19. JavaScript時間轉換
- 20. 的Python/Django的自動類型轉換日期時間字段
- 21. 轉換小時的時間在15分鐘的時間內
- 22. Ruby中的時間轉換?
- 23. java中的時間轉換
- 24. 時間戳轉換的JavaScript
- 25. 劃時代時間轉換
- 26. 轉換時間時區之間,該轉換無法完成
- 27. 轉換爲本地時間Django的查詢集
- 28. 將datetime轉換爲Django Query到Openpyxl的本地時間
- 29. 如何防止Django的從自動轉換日期時間
- 30. 轉換在mysql中使用的時間
感謝,非常有幫助的,但我還需要從用戶獲取本地時間,並保存其轉換爲UTC在分貝。什麼是最好的方式?! –
據我所知,該轉換是自動的。例如,如果您使用ModelForm獲取用戶輸入,則Django將假定任何日期時間輸入都在用戶本地時間,並且在保存到數據庫時將轉換爲UTC。 –
哦,如果你問如何獲取用戶的真實本地時區而不是使用'settings.TIMEZONE',那麼做起來並不容易。查看[這個問題]的答案(http://stackoverflow.com/questions/10235956/django-1-4-how-to-automatically-get-users-timezone-from-client)。 –