django 獲取系統當前時間 和linux 系統當前時間不一致 問題處理。


問題場景:

  在django admin models 實體對象添加一個屬性最后修改時間,用戶在添加、修改是系統自動修改操作時間。

  UpdateTime自動獲取系統時間、並且自動修改。
代碼設置如下。

class User(models.Model): 
 Name = models.ForeignKey(HotTag,verbose_name='姓名'))
 Desc = models.CharField('簡介', blank=True, max_length=50) 
 CreateTime = models.DateTimeField('添加時間', default=datetime.now())
 UpdateTime = models.DateTimeField('修改時間',auto_now=True,default=datetime.now())

上面代碼設置是沒有問題的。
當放到linux 完全上去跑是,發現UpdateTime和CreateTime(數據庫字段)時間和系統時間不一致。
當修改記錄是UpdateTime也能自動修改時間就,當是時間還是和系統時間不一致。


問題分析:
django 時區和當前linux系統時間時區不一致。

原來django settings.py 中的配置如下:

# system time zone.
TIME_ZONE = 'America/Chicago'

  

'America/Chicago' :是美國芝加哥時間

處理方式:

如果把他修改為:

# system time zone.
#TIME_ZONE = 'America/Chicago'
TIME_ZONE = ‘Asia/Shanghai’

  

   Asia/Shanghai (上海時間) 
     Asia/Beijing (北京時間) 
  兩時區是一致的。

重啟django 項目 在登陸后台網站修改用戶數據發現這時時間是一致的。

 

 附加內容:

DateField:日期字段,admin 用一個文本框 <input type=”text”> 來表示該字段數據(附帶一個 JavaScript 日歷和一個”Today”快捷按鍵。有下列額外的可選參數:
auto_now:當對象被保存時,自動將該字段的值設置為當前時間.通常用於表示 “last-modified” 時間戳;
auto_now_add:當對象首次被創建時,自動將該字段的值設置為當前時間.通常用於表示對象創建時間。

 

  GMT 就是格林威治標准時間的英文縮寫(Greenwich Mean Time 格林尼治標准時間),是世界標准時間.
  gmt-8 是格林威治時間+8小時,是北京時間.

 


免責聲明!

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



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