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

來源:互聯網
上載者:User
這篇文章主要介紹了Django中datetime的處理方式(strftime/strptime),本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

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

  strftime()函數是用來格式化一個日期、日期時間和時間的函數,支援date、datetime、time等類,把這些時間通過格式字元要求格式為字串表示。

import datatimedatatime.datatime.now()

或者

from datatime import datatimedatatime.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()>>> t1202872416.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)

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.