第25天:Python datetime 和 time

2021-03-02 Python技術

在前面的章節中已經介紹了一些 Python 常用的模塊,本節再介紹兩個模塊 datetime 模塊和 time 模塊,這兩個模塊主要用於轉換日期格式的功能。

datetime模塊

datetime 模塊是 Python 內置的功能模塊,它可以實現對日期的算數運算,以指定的方式格式化日期。datetime 模塊內含有一個同名的 datetime 類,該類中包含多個操作日期的函數,例如:datetime.now()、datetime.fromtimestamp()、datetime.timedelta()等,下面逐一舉例說明。

datetime()構造函數

datetime 類提供了一個now()的方法可以獲取當前日期和時間,還提供了帶參數的構造函數datetime(),可以通過傳入特定的數字返回不同的datetime 對象。例如:

import datetime#當前日期和時間print(datetime.datetime.now())2019-09-30 22:19:37.582514
#獲取指定時間datetest = datetime.datetime(2019,9,30,22,22,0)print(datetest)2019-09-30 22:22:00
#獲取日期的年月日時分秒print(str(datetest.year)+"-"+str(datetest.month)+"-"+str(datetest.day)+" "+str(datetest.hour)+":"+str(datetest.minute)+":"+str(datetest.second))2019-9-30 22:22:0

fromtimestamp()函數

fromtimestamp()函數可以將時間戳轉換成 datetime 對象。例如:

import datetimedt1 = datetime.datetime.fromtimestamp(10000)dt2 = datetime.datetime.fromtimestamp(time.time())
print(dt1)print(dt2)
1970-01-01 10:46:402019-09-30 23:28:47.629210

strptime()和strftime()函數

使用strptime()函數可以將日期字符串轉換成 datetime 類型,strftime()函數可以將 datetime 類型轉換成字符串。例如:

import datetime#日期轉換datestr = datetime.strptime('2019-9-30 22:10:00', '%Y-%m-%d %H:%M:%S')now = datetime.now()print(datestr)print(now.strftime('%a, %b %d %H:%M'))
2019-09-30 22:10:00Tue, Oct 01 00:02

timedelta()函數

timedelta()函數返回一個 timedelta 類型的數據,它表示一段時間而不是一個時刻,多用於日期的增加和減少場景。例如:

import datetime#日期增加和減少now = datetime.datetime.now()print(now)
newdate = now + datetime.timedelta(hours=10)print(newdate)
newdate = now - datetime.timedelta(days=1)print(newdate)
2019-10-01 00:23:50.1521182019-10-01 10:23:50.1521182019-09-30 00:23:50.152118

time模塊

與 datetime 模塊有所不同,time 模塊主要功能是讀取系統時鐘的當前時間。其中,time.time() 和 time.sleep() 是兩個最常用的模塊。

time()函數

time.time() 函數返回的值是帶小數點的,它表示從 Unix 紀元(1970年1月1日0點)到執行代碼那一刻所經歷的時間的秒數,這個數字稱為UNIX紀元時間戳。例如:

import timeprint ("當前時間戳為:", time.time())
當前時間戳為: 1569770357.6496012

在項目開發中,我們經常需要計算一段代碼的執行時間,就可以用紀元時間戳來實現。例如:

import timedef calculateTime():    item = 1    for i in range(1,100000):        item = item + i    return item
startTime = time.time()result = calculateTime()endTime = time.time()print('計算結果:'+ str(result))print('執行時間:'+ str(endTime - startTime))
計算結果:4999950001執行時間:0.020943403244018555

在代碼中,函數calculateTime()是需要執行的代碼塊,變量 startTime 表示開始時間,變量 endTime 表示結束時間,endTime-startTime表示代碼塊運行的間隔時間。

sleep()函數

如果需要讓程序暫停一下,可以使用time.sleep()函數。sleep()函數有個參數,表示需要暫停的秒數。例如:

import timefor i in range(2):    print('one')    print(time.time())    time.sleep(1)    print('two')    print(time.time())    time.sleep(1)print('運行完成')
one1569772121.6350794two1569772122.637142one1569772123.639813two1569772124.6423109運行完成

從上面程序的執行結果可以看出以下幾點:

列印one和列印two之間每次都間隔了一秒,因為time.time()函數輸出結果的精確度比較高,會存在些許誤差。

time.sleep()函數會阻塞代碼,只有當time.sleep()中的秒數流逝後,才會執行後續代碼

總結

本節給大家介紹了 Python 中 datetime 和 time 模塊的常用操作,對 Python 工程師實現系統日期顯示和轉換功能提供了支撐。

示例代碼https://github.com/layne0031/python-100-day.git

參考[1] Python編程快速上手 https://item.jd.com/11943853.html[2] https://www.liaoxuefeng.com/wiki/1016959663602400/1017648783851616

相關焦點

  • Python基礎模塊:日期與時間模塊@time+datetime
    前段時間才哥主要在忙於工作和遊戲,以及準備肥家事宜(比如預約核酸)。終於,回家之後準備好好學習一下,從python基礎模塊開始,今天為大家準備的是python的日期與時間處理模塊time和datetime。
  • python中時間格式處理問題—— time和datetime庫函數應用!
    中 時間轉換問題(  用到的庫:time 和 datetime ),對於 time 來說,使用到的函數主要有四個:strptime、strftime、localtime、mktime;時間轉換方面需要了解三個概念:時間戳、時間數組(對象)、時間格式
  • python 時間模塊 time datetime calendar複習與比較
    今天針對python庫自帶的三個時間模塊進行複習。。。。time模塊time模塊提供各種操作時間的函數由於time模塊是python自帶的,所以只需要簡單的import time就ok了獲取時間戳time.time()函數可以用來獲取當前時間的時間戳。
  • 深入Python中的time和datetime模塊
    time和datetime是Python處理日期和時間的標準庫。在我們項目的實際開發當中使用率是非常高的。datetime模塊有四個重要的類,date,time,datetime,以及timedelta類,分別表示的是日期對象、時間對象、日期時間對象和時間差對象。
  • 二十六、深入Python中的time和datetime模塊
    「@Author:Runsen」time和datetime是Python處理日期和時間的標準庫。在我們項目的實際開發當中使用率是非常高的。datetime模塊有四個重要的類,date,time,datetime,以及timedelta類,分別表示的是日期對象、時間對象、日期時間對象和時間差對象。時間戳時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總秒數。
  • python標準庫 datetime 日期的使用
    我們在工作過程中有時候會用到日期方面的計算,比如計算兩個日期之前的差,這需要用到python中的一個日期庫 date,今天我們就來認識一下這個庫的使用吧
  • Python datetime指南:教你如何處理日期和時間(附試題+答案)
    是 Python 中處理日期的標準模塊,它提供了 4 種對日期和時間進行處理的主要對象:datetime、date、time 和 timedelta。datetime.time() 類何時以及如何使用 datetime.timedelta() 類時區問題14道練習題及參考答案datetime 簡介在 python 中,datetime 是對日期數據進行處理的主要模塊。
  • python基礎系列|示例講解時間模塊datetime
    Python 有很多種方式處理日期和時間,常見的時間處理的模塊是datetime、time、calendar。能融匯貫通的了解和使用這三個模塊,才能輕而易舉地用python處理時間。本文以此為目的,通過講述各個時間模塊的概述、函數及相關知識細節、以及相應的示例來講透它們的使用方式。
  • 【Python基礎】13個知識點,系統整理Python時間處理模塊Datetime
    date, datetime,time,timedelta,tzinfoimport time時間實例的構造包括 日期(如 2020年10月12日),時間(如 20點10分01秒),或者是包含 date 和 time 的 datetime (如 2020年10月12日20點10分01秒),下面 Lemon 來跟大家介紹下具體的構造過程
  • 13個知識點,系統整理Python時間處理模塊Datetime
    date, datetime,time,timedelta,tzinfoimport time時間實例的構造包括 日期(如 2020年10月12日),時間(如 20點10分01秒),或者是包含 date 和 time 的 datetime (如 2020年10月12日20點10分01秒),下面 Lemon 來跟大家介紹下具體的構造過程
  • python中的時間處理模塊(二):datetime模塊之timedelta類詳解
    但是為了更靈活的處理時間,最好是將time模塊和datetime模塊中的精髓學習到。① date類:主要用於處理年、月、日;③ datetime類:date類和time類的綜合使用,可以處理年、月、日、時、分、秒;⑤ tzinfo類:時區類;注意:tzinfo類用的不多,也就不專門講述了,如果有需要,可以自行學習。
  • 深入理解Django時區及naive datetime object和aware datetime object的區別
    如果你要在Django視圖和模板中正確使用DateTime類型的數據,除了要閱讀Django基礎(32):按日期與時間欄位查詢數據及模板中日期時間類型數據的格式化及比較,還必須要對timezone非常了解,才能避免如RuntimeWarning: DateTimeField Article.pub_date received a naive datetime 這種新手必犯的錯誤。
  • Python 新手入門必學模塊之:datetime
    日期時間模塊 datetimedatetime 模塊提供了可以通過多種方式操作日期和時間的類。在支持日期時間數學運算的同時,實現更有效地解析屬性、格式化輸出和數據操作。常用的子類有 datetime 類和 timedelta 類。class datetime.datetime  日期和時間的結合。
  • 從零入門量化交易系列-python中幾個量化金融常用標準庫math,calendar,time,datetime
    4、日期時間模塊datetimedatetime模塊提供了處理日期和時間的類,既有簡單的方式,又有複雜的方式。它雖然支持日期和時間算法,但其實現的重點是為輸出格式化和操作提供高效的屬性提取功能。datetime模塊定義了以下幾個類:類名稱描述datetime.date表示日期,常用的屬性有:year, month和daydatetime.time表示時間,常用屬性有:hour, minute, second, microseconddatetime.datetime
  • Python學習筆記-time模塊詳解(附常用函數實例)
    Python裡面和時間有關的那些事 python的小白,對日期的加減、格式化輸出,容易有誤區和迷茫,臨時各種百度,雖然也能找到方法,但是難免會試錯。那咱們按不同需求來整理一下如何?下次用到的時候就可以拿來主義了!歡迎糾正和補充!
  • Python中級教程——time、datetime、calendar模塊介紹
    本節介紹 Python內置模塊 time、datetime、calendar的常用用法。timetime模塊提供各種操作時間的函數。說明:一般有兩種表示時間的方式:1.時間戳的方式(相對於1970.1.1 00:00:00以秒計算的偏移量),時間戳是惟一的2.以數組的形式表示即(struct_time),共有九個元素,分別表示,同一個時間戳的struct_time會因為時區不同而不同time() — 返回時間戳sleep() — 延遲運行單位為sgmtime() — 轉換時間戳為時間元組(時間對象)localtime
  • 用Python處理時間日期字符串的小結
    &import time   import datetime   print '\nStart @ %s' % (datetime.datetime.now().strftime("%Y-%m-%d %H:%M"), )   start = time.time()   ctime_str = (datetime.datetime.now() - datetime.timedelta
  • Python時間運算的詳細機制初探討
    一句話快速進行python時間運算的技巧1、python快速求值當前時間當前的天數、當前的時間In [1]: from datetime import datetime, timedelta, date
  • Python時間模塊(筆記)
    「關於python處理時間常用的庫,分別是time、datetime、calendar這三個庫,以下是整理總結的常用方法:1、time庫# 獲取本地時間戳,返回浮點數print(time.time()) # 1590921425.7660675
  • python中的時間處理
    python中處理時間的模塊有三個,datetime, time,calendar,融匯貫通三個模塊,才能隨心所欲地用python