Django ORM存儲datetime 時間誤差8小時問題


今天使用django ORM 將獲取到的時間入庫,並未出現問題,但是后來發現時間晚了8小時,經查詢Django官方文檔發現獲取本地時間和UTC時間有差別。

首先科普下:
UTC是協調世界時 UTC相當於本初子午線(即經度0度)上的平均太陽時,過去曾用格林威治平均時(GMT)來表示.北京時間比UTC時間早8小時,以1999年1月1日0000UTC為例,UTC時間是零點,北京時間為1999年1月1日早上8點整

錯誤如圖:

解決如下:

第一種:修改settings中的配置項

找到settings中的USE_TZ= True,把True改成False即可

第二種:在函數直接傳遞時間參數時,確保時間已經轉換成UTC時間

import datetime
from django.utils.timezone import utc
now = datetime.datetime.utcnow().replace(tzinfo=utc)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM