首頁 > 軟體

Python 一篇文章看懂時間日期物件

2022-03-07 19:07:51

一、時間物件time

time模組使用的是C語言函數庫中的函數。只能處理1970/1/1到2038/12/31之間的資料。

1.測量執行時間方法

①process_time()

主要作用就是返回當前程序處理器執行時間

②perf_counter()

返回效能計算器

③monotonic()

返回單項時鐘

2.函數效能計算器

使用函數裝飾器結合time物件,測試排序演演算法的效能。

from random import *
import time
# -----------------------裝飾器函數用於計時-----------------------#
def timer(func):
    def weapper(*s):
        start=time.perf_counter()
        func(*s)
        end=time.perf_counter()
        print("用時:tt",end-start)
    return weapper


# -----------------------生成隨機列表-----------------------#
def randomlist():
    return [randint(0,100) for x in range(10)]

# -----------------------氣泡排序-----------------------#
@timer
def sortA():
    lis=randomlist()
    print("隨機生成的序列:",lis)
    i=0
    while i<len(lis):
        j=i+1
        while j<len(lis)-i:
            if lis[j]<lis[i]:
               lis[i],lis[j]=lis[j],lis[i]
            j+=1
        i+=1 
    print("排序後的序列:t",lis)

# -----------------------選擇排序-----------------------#

@timer
def sortB():
    lis=randomlist()
    print("隨機生成的序列:",lis)
    i=0
    while i<len(lis):
        j=0
        while j<len(lis)-1:
            if lis[j]>lis[j+1]:
               lis[j+1],lis[j]=lis[j],lis[j+1]
            j+=1
        i+=1
    print("排序後的序列:t",lis)

# -----------------------插入排序-----------------------#
'''

    將未排序數列插入左側已排好隊的序列。
    分析需要一個遊標記錄應該排序的位置,一個臨時變數進行應該排序資料的臨時儲存

'''
@timer
def sortC():
    lis=randomlist()
    print("隨機生成的序列:",lis)
    for i in range(1,len(lis)):
        temp = lis[i]
        j=i
        while lis[j-1]>temp:
            lis[j]=lis[j-1]
            j=j-1
            if j==0:
                break
        lis[j]=temp

    print("排序後的序列:t",lis)
 # -----------------------主函數-----------------------#
def main():    
    print("-----------------氣泡排序---------------------")
    sortA()
    print("-----------------選擇排序---------------------")
    sortB()
    print("-----------------插入排序---------------------")
    sortC()


if __name__=="__main__":
    main()  

二、日期物件datetime

日期物件在處理字串與日期物件的時候特別常用。所以呢咱們重點學習一下 Python中的字串轉日期、日期轉字串的方法。

1.格式化日期字串時常用的預留位置

  • %Y Year with century as a decimal number.
  • %m Month as a decimal number [01,12].
  • %d Day of the month as a decimal number [01,31].
  • %H Hour (24-hour clock) as a decimal number [00,23].
  • %M Minute as a decimal number [00,59].
  • %S Second as a decimal number [00,61].
  • %z Time zone offset from UTC.
  • %a Locale's abbreviated weekday name.
  • %A Locale's full weekday name.
  • %b Locale's abbreviated month name.
  • %B Locale's full month name.
  • %c Locale's appropriate date and time representation.
  • %I Hour (12-hour clock) as a decimal number [01,12].
  • %p Locale's equivalent of either AM or PM.

2.日期物件

datetime.date.today() #輸出年月日

datetime.datetime.now() #輸出年月日時分秒毫秒

可以通過datetime.date.today() 獲取到時間物件使用相應的實體方法可以獲取到年月日

可以通過datetime.datetime.now()獲取到時間物件用相應的實體方法可以獲取到年月日時分秒

屬性是year(年),month(月)day(日),hour(時),minute(分),second(秒)

st=datetime.datetime.now()

st.year #獲取年份

3.日期轉字串

函數strftime()引數為format物件,預留位置使用的就是1中提到的那幾個。 將日期按照指定格式進行格式化,並返回出來。

程式碼如下:

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

4.字串轉日期

通過的是strptime()引數是一個字串,還有字串的格式化(哪裡是年哪裡是月) eg:

import datetime

str = datetime.strptime(「20200202」,"%Y%m%d")

這裡str就是2020年02月02日的日期物件

切記時間物件可以直接比較大小(時間的前後)

總結

主要講述了Python中日期與時間常用到的一些函數,以及日期格式化為字串、字串轉換為日期物件。雖然篇幅短小但是非常精悍。對於時間日期物件重點掌握時間差怎麼求,怎麼處理字串與日期之間的關係就足夠了。其餘功能在我們使用的時候再去官方檔案上查詢。

到此這篇關於Python 一篇文章看懂時間日期物件的文章就介紹到這了,更多相關Python 時間日期物件內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com