2019年11月18日 星期一

Django 的時間格式處理範例


日期與時間永遠是專案中很重要的一部分,

不論是專案的起始與結束,

或者重要資訊的發布,

都與時間密切相關,

今天就來介紹:

Django 的時間格式處理範例

Django 的 model 中,

表示時間的格式有三種:

DateTimeField ,DateField,TimeField,

這些時間資料都有 auto_now 與 auto_now_add 參數,

當 auto_now 設定為 True,

則每次儲存時候,會更新時間欄位為現在時間,

但 auto_now_add 設定為 True 時,

此時間欄位只有在建立的時候將時間記錄下來,

特別要注意的此兩個參數只能一者為 True,

只要有一者為 True 此欄位就無法修改



若希望時間欄位能夠修改,

則需使用 default 指定預設時間,

上圖範例使用 default= date.today 作為預設時間,

而在程式碼中,

若要進行時間格式的轉換,

可透過 datetime(),date(),time() 中的各種方法來轉換,

例如


datetime.strptime(字串, "字串的時間格式")

此方法是將 String 格式的時間轉成時間格式


date1 = datetime.datetime.strptime(col[5], '%Y-%m-%d')


上圖範例將文字格式的時間 2019-11-18 , 轉為 datetime 格式後輸出,

而 datetime.strftime("時間格式", 時間),

則是將時間依照指定的時間格式輸出為字串格式,

假設目前以今天的日期為範例 t1= datetime.now() ,

執行 print ( datetime.strftime("%Y-%m-%d", t1) ),

就會顯示:

2019-11-18

附帶一提的是時間格式的代號:

  • %Y  四位數字的年份表示
  • %y  兩位數字的年份表示
  • %m 月份
  • %d  日期
  • %H 24小時制的時數
  • %M 分
  • %S 秒
  • %b 月份的縮寫(例如:二月為Feb)










沒有留言: