主頁(yè) > 知識(shí)庫(kù) > Django中datetime的處理方法(strftime/strptime)

Django中datetime的處理方法(strftime/strptime)

熱門(mén)標(biāo)簽:合肥外呼系統(tǒng)app 高識(shí)別電銷機(jī)器人 拉薩打電話機(jī)器人 電銷機(jī)器人-快迭智能 智能外呼電銷系統(tǒng) 哈爾濱400電話辦理到易號(hào)網(wǎng) h5 地圖標(biāo)注 寶安400電話辦理 沈陽(yáng)人工智能電銷機(jī)器人公司

strftime將date,datetime,timezone.now()類型處理轉(zhuǎn)化為字符串類型>

  strftime()函數(shù)是用來(lái)格式化一個(gè)日期、日期時(shí)間和時(shí)間的函數(shù),支持date、datetime、time等類,把這些時(shí)間通過(guò)格式字符要求格式為字符串表示。

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ù)就是從字符串表示的日期時(shí)間按格式化字符串要求轉(zhuǎn)換為相應(yīng)的日期時(shí)間。

d2 = datetime.strptime('2018-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')

轉(zhuǎn)化對(duì)照的格式: 

轉(zhuǎn)成字符串

%y 兩位數(shù)的年份表示(00-99)
%Y 四位數(shù)的年份表示(000-9999)
%m 月份(01-12)
%d 月內(nèi)中的一天(0-31)
%H 24小時(shí)制小時(shí)數(shù)(0-23)
%I 12小時(shí)制小時(shí)數(shù)(01-12)  十二小時(shí)制
%M 分鐘數(shù)(00=59)
%S 秒(00-59) 

遇到的兩個(gè)bug:

一:顯示時(shí)間和數(shù)據(jù)庫(kù)不一致的bug:

  曾經(jīng)遇到過(guò)這樣的一個(gè)問(wèn)題,從數(shù)據(jù)庫(kù)取出來(lái)的時(shí)間和前端顯示時(shí)間不一致的問(wèn)題.后來(lái)經(jīng)過(guò)多出輸出時(shí)間各處轉(zhuǎn)換的信息,最后發(fā)現(xiàn),因?yàn)橹皩?xiě)代碼的同事,使用了這樣的

one['time'] = one['time'].strftime('%Y-%m-%d %H:%I:%S')

%I是十二小時(shí)制的轉(zhuǎn)換形式.這樣轉(zhuǎn)換格式的時(shí)候,雖然不會(huì)報(bào)錯(cuò),可是輸出的結(jié)果會(huì)和數(shù)據(jù)庫(kù)的不一致,數(shù)據(jù)庫(kù)是以24小時(shí)為單位記錄的時(shí)間.

二:datetime.datetime(2018, 2, 2, 18, 25, 29, tzinfo=UTC>) is not JSON serializable

出現(xiàn)這樣的錯(cuò)誤信息..

datetime.datetime(2018, 2, 2, 18, 25, 29, tzinfo=UTC>) is not JSON serializable

 這是出現(xiàn)在將datetime數(shù)據(jù)直接放在json里出現(xiàn)的錯(cuò)誤信息.不能直接放在json里.

解決辦法是:可以使用strftime進(jìn)行序列化,如下面的方法

.strftime("%Y-%m-%d %H:%M:%S")

下面看下Python:time, strftime和strptime的具體講解

最常用的time.time()返回的是一個(gè)浮點(diǎn)數(shù),單位為秒。但strftime處理的類型是time.struct_time,實(shí)際上是一個(gè)tuple。strptime和localtime都會(huì)返回這個(gè)類型。

>>> 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),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • Python datetime 如何處理時(shí)區(qū)信息
  • 分析Python的Django框架的運(yùn)行方式及處理流程
  • Django中的DateTimeField和DateField實(shí)現(xiàn)
  • django 中使用DateTime常用的時(shí)間查詢方式
  • 如何在Django中添加沒(méi)有微秒的 DateTimeField 屬性詳解
  • Django 中的Timezone 處理操作

標(biāo)簽:成都 巴中 林芝 泰州 張家口 山東 梅州 威海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Django中datetime的處理方法(strftime/strptime)》,本文關(guān)鍵詞  Django,中,datetime,的,處理,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Django中datetime的處理方法(strftime/strptime)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Django中datetime的處理方法(strftime/strptime)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章