strftime將date,datetime,timezone.now()類型處理轉(zhuǎn)化為字符串類型>
strftime()函數(shù)是用來格式化一個日期、日期時間和時間的函數(shù),支持date、datetime、time等類,把這些時間通過格式字符要求格式為字符串表示。
import datatime
datatime.datatime.now()
或者
from datatime import datatime
datatime.now()
我的輸出轉(zhuǎn)化格式
strftime('%Y-%m-%d %H:%I:%S')
效果類似于2018-07-02 23:18:20這樣.
strptime將字符串處理轉(zhuǎn)換成期望類型的數(shù)據(jù)>
strptime()函數(shù)就是從字符串表示的日期時間按格式化字符串要求轉(zhuǎn)換為相應(yīng)的日期時間。
d2 = datetime.strptime('2018-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')
轉(zhuǎn)化對照的格式:
轉(zhuǎn)成字符串
%y 兩位數(shù)的年份表示(00-99)
%Y 四位數(shù)的年份表示(000-9999)
%m 月份(01-12)
%d 月內(nèi)中的一天(0-31)
%H 24小時制小時數(shù)(0-23)
%I 12小時制小時數(shù)(01-12) 十二小時制
%M 分鐘數(shù)(00=59)
%S 秒(00-59)
遇到的兩個bug:
一:顯示時間和數(shù)據(jù)庫不一致的bug:
曾經(jīng)遇到過這樣的一個問題,從數(shù)據(jù)庫取出來的時間和前端顯示時間不一致的問題.后來經(jīng)過多出輸出時間各處轉(zhuǎn)換的信息,最后發(fā)現(xiàn),因為之前寫代碼的同事,使用了這樣的
one['time'] = one['time'].strftime('%Y-%m-%d %H:%I:%S')
%I是十二小時制的轉(zhuǎn)換形式.這樣轉(zhuǎn)換格式的時候,雖然不會報錯,可是輸出的結(jié)果會和數(shù)據(jù)庫的不一致,數(shù)據(jù)庫是以24小時為單位記錄的時間.
二:datetime.datetime(2018, 2, 2, 18, 25, 29, tzinfo=UTC>) is not JSON serializable
出現(xiàn)這樣的錯誤信息..
datetime.datetime(2018, 2, 2, 18, 25, 29, tzinfo=UTC>) is not JSON serializable
這是出現(xiàn)在將datetime數(shù)據(jù)直接放在json里出現(xiàn)的錯誤信息.不能直接放在json里.
解決辦法是:可以使用strftime進(jìn)行序列化,如下面的方法
.strftime("%Y-%m-%d %H:%M:%S")
下面看下Python:time, strftime和strptime的具體講解
最常用的time.time()返回的是一個浮點數(shù),單位為秒。但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)
總結(jié)
以上所述是小編給大家介紹的Django中datetime的處理方法(strftime/strptime),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- Python datetime 如何處理時區(qū)信息
- 分析Python的Django框架的運行方式及處理流程
- Django中的DateTimeField和DateField實現(xiàn)
- django 中使用DateTime常用的時間查詢方式
- 如何在Django中添加沒有微秒的 DateTimeField 屬性詳解
- Django 中的Timezone 處理操作