Python 一篇文章看懂時(shí)間日期對(duì)象
一、時(shí)間對(duì)象time
time模塊使用的是C語(yǔ)言函數(shù)庫(kù)中的函數(shù)。只能處理1970/1/1到2038/12/31之間的數(shù)據(jù)。

1.測(cè)量運(yùn)行時(shí)間方法
①process_time()
主要作用就是返回當(dāng)前進(jìn)程處理器運(yùn)行時(shí)間
②perf_counter()
返回性能計(jì)算器
③monotonic()
返回單項(xiàng)時(shí)鐘
2.函數(shù)性能計(jì)算器
使用函數(shù)裝飾器結(jié)合time對(duì)象,測(cè)試排序算法的性能。
from random import *
import time
# -----------------------裝飾器函數(shù)用于計(jì)時(shí)-----------------------#
def timer(func):
def weapper(*s):
start=time.perf_counter()
func(*s)
end=time.perf_counter()
print("用時(shí):\t\t",end-start)
return weapper
# -----------------------生成隨機(jī)列表-----------------------#
def randomlist():
return [randint(0,100) for x in range(10)]
# -----------------------冒泡排序-----------------------#
@timer
def sortA():
lis=randomlist()
print("隨機(jī)生成的序列:",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("隨機(jī)生成的序列:",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)
# -----------------------插入排序-----------------------#
'''
將未排序數(shù)列插入左側(cè)已排好隊(duì)的序列。
分析需要一個(gè)游標(biāo)記錄應(yīng)該排序的位置,一個(gè)臨時(shí)變量進(jìn)行應(yīng)該排序數(shù)據(jù)的臨時(shí)保存
'''
@timer
def sortC():
lis=randomlist()
print("隨機(jī)生成的序列:",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)
# -----------------------主函數(shù)-----------------------#
def main():
print("-----------------冒泡排序---------------------")
sortA()
print("-----------------選擇排序---------------------")
sortB()
print("-----------------插入排序---------------------")
sortC()
if __name__=="__main__":
main()
二、日期對(duì)象datetime
日期對(duì)象在處理字符串與日期對(duì)象的時(shí)候特別常用。所以呢咱們重點(diǎn)學(xué)習(xí)一下 Python中的字符串轉(zhuǎn)日期、日期轉(zhuǎn)字符串的方法。
1.格式化日期字符串時(shí)常用的占位符
- %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.日期對(duì)象
datetime.date.today() #輸出年月日
datetime.datetime.now() #輸出年月日時(shí)分秒毫秒
可以通過(guò)datetime.date.today() 獲取到時(shí)間對(duì)象使用相應(yīng)的實(shí)例方法可以獲取到年月日
可以通過(guò)datetime.datetime.now()獲取到時(shí)間對(duì)象用相應(yīng)的實(shí)例方法可以獲取到年月日時(shí)分秒
屬性是year(年),month(月)day(日),hour(時(shí)),minute(分),second(秒)
st=datetime.datetime.now()
st.year #獲取年份
3.日期轉(zhuǎn)字符串
函數(shù)strftime()參數(shù)為format對(duì)象,占位符使用的就是1中提到的那幾個(gè)。 將日期按照指定格式進(jìn)行格式化,并返回出來(lái)。
代碼如下:
import datetime
datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
4.字符串轉(zhuǎn)日期
通過(guò)的是strptime()參數(shù)是一個(gè)字符串,還有字符串的格式化(哪里是年哪里是月) eg:
import datetime
str = datetime.strptime(“20200202”,"%Y%m%d")
這里str就是2020年02月02日的日期對(duì)象
切記時(shí)間對(duì)象可以直接比較大小(時(shí)間的前后)
總結(jié)
主要講述了Python中日期與時(shí)間常用到的一些函數(shù),以及日期格式化為字符串、字符串轉(zhuǎn)換為日期對(duì)象。雖然篇幅短小但是非常精悍。對(duì)于時(shí)間日期對(duì)象重點(diǎn)掌握時(shí)間差怎么求,怎么處理字符串與日期之間的關(guān)系就足夠了。其余功能在我們使用的時(shí)候再去官方文檔上查找。

到此這篇關(guān)于Python 一篇文章看懂時(shí)間日期對(duì)象的文章就介紹到這了,更多相關(guān)Python 時(shí)間日期對(duì)象內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 關(guān)鍵字與標(biāo)識(shí)符超詳細(xì)整理
這篇文章主要給大家介紹了關(guān)于Python關(guān)鍵字、標(biāo)識(shí)符和變量的相關(guān)資料,Python關(guān)鍵詞是Python保留的具有特定含義的特殊詞語(yǔ),用于執(zhí)行某些操作,Python標(biāo)識(shí)符是用戶定義的名稱,而變量是計(jì)算機(jī)內(nèi)存中的一塊區(qū)域,存儲(chǔ)對(duì)象的內(nèi)存地址,以便引用對(duì)象的值,需要的朋友可以參考下2022-03-03
Python系統(tǒng)公網(wǎng)私網(wǎng)流量監(jiān)控實(shí)現(xiàn)流程
這篇文章主要介紹了Python系統(tǒng)公網(wǎng)私網(wǎng)流量監(jiān)控實(shí)現(xiàn)流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
Python使用pytest-playwright的原因分析
pytest-playwright 是一個(gè) Python 包,它允許您使用 Microsoft 的 Playwright 庫(kù)在 Python 項(xiàng)目中進(jìn)行端到端測(cè)試,這篇文章主要介紹了Python為什么使用pytest-playwright,需要的朋友可以參考下2023-03-03
python 實(shí)現(xiàn)以相同規(guī)律打亂多組數(shù)據(jù)
這篇文章主要介紹了python 實(shí)現(xiàn)以相同規(guī)律打亂多組數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Pycharm中出現(xiàn)ImportError:DLL load failed:找不到指定模塊的解決方法
這篇文章主要介紹了Pycharm中出現(xiàn)ImportError:DLL load failed:找不到指定模塊的解決方法,需要的朋友可以參考下2019-09-09
python爬蟲(chóng)基礎(chǔ)之簡(jiǎn)易網(wǎng)頁(yè)搜集器
這篇文章主要介紹了python爬蟲(chóng)基礎(chǔ)之簡(jiǎn)易網(wǎng)頁(yè)搜集器,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python爬蟲(chóng)的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04
Django celery實(shí)現(xiàn)異步任務(wù)操作,并在后臺(tái)運(yùn)行(守護(hù)進(jìn)程)
這篇文章主要介紹了Django celery實(shí)現(xiàn)異步任務(wù)操作,并在后臺(tái)運(yùn)行(守護(hù)進(jìn)程),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
pandas實(shí)現(xiàn)數(shù)據(jù)讀取&清洗&分析的項(xiàng)目實(shí)踐
近期因工作需要,需對(duì)幾十萬(wàn)條商品和訂單數(shù)據(jù)進(jìn)行初步的數(shù)據(jù)分析,本文主要pandas實(shí)現(xiàn)數(shù)據(jù)讀取&清洗&分析的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下2022-05-05

