本篇內(nèi)容介紹了“Python庫中關(guān)于時間的常見操作有哪些”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比湖口網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式湖口網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋湖口地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。
time包
import time
時間戳
從1970年1月1日00:00:00標(biāo)準(zhǔn)時區(qū)誕生到現(xiàn)在時間一共過了多少秒。
代碼
timestamp = time.time() # type:float print(timestamp, type(timestamp))
執(zhí)行結(jié)果
睡眠
有時候可能我們可能需要模仿一些IO請求,假裝讓程序休眠一下,所以需要用到time的sleep函數(shù)。
代碼
# 睡眠 1秒 time.sleep(1)
本地時區(qū)
本地時區(qū)需要用到time的localtime方法。
代碼
t = time.localtime() # type:time.struct_time print(t, type(t))
執(zhí)行結(jié)果
localtime還能接收一個時間戳參數(shù)。
代碼
# 將時間戳轉(zhuǎn)換成 struct_time 對象 t = time.localtime(1606395685.1878598) # type:time.struct_time print(t, type(t))
執(zhí)行結(jié)果
簡單的時間格式
代碼
t = time.ctime() # type:str print(t, type(t))
執(zhí)行結(jié)果
雖然這個能把時間展示出來,但是這個格式實在是不是太好看。
同理,time.ctime()也是可以接收一個時間戳的。
代碼
t = time.ctime(1606395685.1878598) # type:str print(t, type(t))
執(zhí)行結(jié)果
時間格式化
日期格式 -> 字符串(strftime)
代碼
t = time.localtime() # type:time.struct_time t_str = time.strftime("%Y-%m-%d", t) # type:str print(t_str, type(t_str))
執(zhí)行結(jié)果
字符串日期 -> 日期(strptime)
代碼
t_str = "2020-11-02" t_time = time.strptime(t_str, "%Y-%m-%d") # type:time.struct_time print(t_time, type(t_time))
執(zhí)行結(jié)果
格式化補充
主要有如下格式
具體詳見:
https://www.runoob.com/python/python-date-time.html
datetime包
注:datetime和time是兩個不同的類型,不能混用。
from datetime import datetime
datetime.today()
代碼
t = datetime.today() # type:datetime print(t, type(t)) print(t.year) # 年份 print(t.month) # 月份
執(zhí)行結(jié)果
datetime.now()
和datetime.today()基本一樣,返回的是本地時間。
代碼
t = datetime.now() # type:datetime print(t,type(t))
執(zhí)行結(jié)果
datetime.utcnow()
utcnow返回的是標(biāo)準(zhǔn)(UTC)時間,上述倆返回的都是本地時間,我們是東八區(qū)!
代碼
t = datetime.now() print("東八區(qū)時間:", t) t = datetime.utcnow() # type:datetime print("UTC時間:", t)
執(zhí)行結(jié)果
時間戳轉(zhuǎn)datetime
有時候,我們拿到的,就是時間戳,那就只能轉(zhuǎn)了。
代碼
# 時間戳 timestamp = time.time() print(f"timestamp:{timestamp},type:{type(timestamp)}") # 時間戳轉(zhuǎn)datetime t = datetime.fromtimestamp(timestamp) print(f"t:{t},type:{type(t)}")
執(zhí)行結(jié)果
datetime -> 字符串日期(strftime)
代碼
from datetime import datetime t = datetime.now() str_datetime = t.strftime("%Y-%m-%d %H:%M:%S") print(f"字符串日期:{str_datetime},type:{type(str_datetime)}")
執(zhí)行結(jié)果
字符串日期 -> datetime(strptime)
代碼
from datetime import datetime str_datetime = "2020-11-29 22:05:20" t = datetime.strptime(str_datetime, "%Y-%m-%d %H:%M:%S") print(f"t:{t},type:{type(t)}")
執(zhí)行結(jié)果
時間加減
這才是本次的重頭戲,好像只有datetime這個包,才有時間加減的。
時間加減的具體用途很多,必須多久過期什么的,多久之后提醒,都需要提前計算時間,還是很重要的。
代碼
from datetime import datetime import datetime as idatetime t = datetime.now() print(f"當(dāng)前時間:{t}") three_day = t + idatetime.timedelta(days=3) print(f"三天后時間:{three_day}")
執(zhí)行結(jié)果
可以發(fā)現(xiàn),這個時間確實是+成功了。
但是自帶的時間加減,有個題,只能加天,不能加月,甚至年。
如果想要時間+月等,還要自己寫邏輯。
datetime時間自由加減
有個包正好解決了這個問題。
安裝
pip install python-dateutil
代碼
from datetime import datetime from dateutil.relativedelta import relativedelta t = datetime.now() print(f"當(dāng)前時間:{t}") three_time = t + relativedelta(months=3) print(f"三個月后時間:{three_time}") one_year = t+relativedelta(years=1) print(f"一年后時間:{one_year}") up_year = t+relativedelta(years=-1) print(f"去年這個時間:{up_year}")
執(zhí)行結(jié)果
用法很簡單,如果想加月/年份,就寫正數(shù),如果想減,就寫負(fù)數(shù),這個方法基本上將python在操作時間上的缺點給彌補了。
“Python庫中關(guān)于時間的常見操作有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!