您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Django中datetime處理方法的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
strftime<將date,datetime,timezone.now()類型處理轉化為字符串類型>
strftime()函數是用來格式化一個日期、日期時間和時間的函數,支持date、datetime、time等類,把這些時間通過格式字符要求格式為字符串表示。
import datatime datatime.datatime.now()
或者
from datatime import datatime datatime.now()
我的輸出轉化格式
strftime('%Y-%m-%d %H:%I:%S')
效果類似于2018-07-02 23:18:20這樣.
strptime<將字符串處理轉換成期望類型的數據>
strptime()函數就是從字符串表示的日期時間按格式化字符串要求轉換為相應的日期時間。
d2 = datetime.strptime('2018-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')
轉化對照的格式:
轉成字符串
%y 兩位數的年份表示(00-99)
%Y 四位數的年份表示(000-9999)
%m 月份(01-12)
%d 月內中的一天(0-31)
%H 24小時制小時數(0-23)
%I 12小時制小時數(01-12) 十二小時制
%M 分鐘數(00=59)
%S 秒(00-59)
遇到的兩個bug:
一:顯示時間和數據庫不一致的bug:
曾經遇到過這樣的一個問題,從數據庫取出來的時間和前端顯示時間不一致的問題.后來經過多出輸出時間各處轉換的信息,最后發現,因為之前寫代碼的同事,使用了這樣的
one['time'] = one['time'].strftime('%Y-%m-%d %H:%I:%S')
%I是十二小時制的轉換形式.這樣轉換格式的時候,雖然不會報錯,可是輸出的結果會和數據庫的不一致,數據庫是以24小時為單位記錄的時間.
二:datetime.datetime(2018, 2, 2, 18, 25, 29, tzinfo=<UTC>) is not JSON serializable
出現這樣的錯誤信息..
datetime.datetime(2018, 2, 2, 18, 25, 29, tzinfo=<UTC>) is not JSON serializable
這是出現在將datetime數據直接放在json里出現的錯誤信息.不能直接放在json里.
解決辦法是:可以使用strftime進行序列化,如下面的方法
.strftime("%Y-%m-%d %H:%M:%S")
下面看下Python:time, strftime和strptime的具體講解
最常用的time.time()返回的是一個浮點數,單位為秒。但strftime處理的類型是time.struct_time,實際上是一個tuple。strptime和localtime都會返回這個類型。
>>> import time >>> t = time.time() >>> t 1202872416.4920001 >>> type(t) <type 'float'> >>> t = time.localtime() >>> t (2008, 2, 13, 10, 56, 44, 2, 44, 0) >>> type(t) <type 'time.struct_time'> >>> time.strftime('%Y-%m-%d', t) '2008-02-13' >>> time.strptime('2008-02-14', '%Y-%m-%d') (2008, 2, 14, 0, 0, 0, 3, 45, -1)
感謝各位的閱讀!關于“Django中datetime處理方法的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。