日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
一篇文章總結(jié)一下Python庫中關(guān)于時間的常見操作

[[355109]]

創(chuàng)新互聯(lián)公司成立與2013年,先為蕪湖縣等服務(wù)建站,蕪湖縣等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為蕪湖縣企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

 前言

本次來總結(jié)一下關(guān)于Python時間的相關(guān)操作,有一個有趣的問題。

如果你的業(yè)務(wù)用不到時間相關(guān)的操作,你的業(yè)務(wù)基本上會一直用不到。

但是如果你的業(yè)務(wù)一旦用到了時間操作,你就會發(fā)現(xiàn),淦,到處都是時間操作。。。

所以思來想去,還是總結(jié)一下吧,本次會采用類型注解方式。

time包

 
 
 
 
  1. import time 

時間戳

從1970年1月1日00:00:00標準時區(qū)誕生到現(xiàn)在時間一共過了多少秒。

代碼

 
 
 
 
  1. timestamp = time.time()  # type:float 
  2. print(timestamp, type(timestamp)) 

執(zhí)行結(jié)果

  

睡眠

有時候可能我們可能需要模仿一些IO請求,假裝讓程序休眠一下,所以需要用到time的sleep函數(shù)。

代碼

 
 
 
 
  1. # 睡眠 1秒 
  2. time.sleep(1) 

本地時區(qū)

本地時區(qū)需要用到time的localtime方法。

代碼

 
 
 
 
  1. t = time.localtime()  # type:time.struct_time 
  2. print(t, type(t)) 

執(zhí)行結(jié)果

localtime還能接收一個時間戳參數(shù)。

代碼

 
 
 
 
  1. # 將時間戳轉(zhuǎn)換成 struct_time 對象 
  2. t = time.localtime(1606395685.1878598)  # type:time.struct_time 
  3. print(t, type(t)) 

執(zhí)行結(jié)果

 簡單的時間格式

代碼

 
 
 
 
  1. t = time.ctime()  # type:str 
  2. print(t, type(t)) 

執(zhí)行結(jié)果

雖然這個能把時間展示出來,但是這個格式實在是不是太好看。

同理,time.ctime()也是可以接收一個時間戳的。

代碼

 
 
 
 
  1. t = time.ctime(1606395685.1878598)  # type:str 
  2. print(t, type(t)) 

執(zhí)行結(jié)果

時間格式化

日期格式 -> 字符串(strftime)

代碼

 
 
 
 
  1. t = time.localtime()  # type:time.struct_time 
  2. t_str = time.strftime("%Y-%m-%d", t)  # type:str 
  3. print(t_str, type(t_str)) 

執(zhí)行結(jié)果

 

字符串日期 -> 日期(strptime)

代碼

 
 
 
 
  1. t_str = "2020-11-02" 
  2. t_time = time.strptime(t_str, "%Y-%m-%d")  # type:time.struct_time 
  3. print(t_time, type(t_time)) 

執(zhí)行結(jié)果

 

格式化補充

主要有如下格式

具體詳見:

https://www.runoob.com/python/python-date-time.html

datetime包

注:datetime和time是兩個不同的類型,不能混用。

 
 
 
 
  1. from datetime import datetime 

datetime.today()

代碼

 
 
 
 
  1. t = datetime.today()  # type:datetime 
  2. print(t, type(t)) 
  3. print(t.year)  # 年份 
  4. print(t.month)  # 月份 

執(zhí)行結(jié)果

datetime.now()

和datetime.today()基本一樣,返回的是本地時間。

代碼

 
 
 
 
  1. t = datetime.now()  # type:datetime 
  2. print(t,type(t)) 

執(zhí)行結(jié)果

datetime.utcnow()

utcnow返回的是標準(UTC)時間,上述倆返回的都是本地時間,我們是東八區(qū)!

代碼

 
 
 
 
  1. t = datetime.now() 
  2. print("東八區(qū)時間:", t) 
  3. t = datetime.utcnow()  # type:datetime 
  4. print("UTC時間:", t) 

執(zhí)行結(jié)果

時間戳轉(zhuǎn)datetime

有時候,我們拿到的,就是時間戳,那就只能轉(zhuǎn)了。

代碼

 
 
 
 
  1. # 時間戳 
  2. timestamp = time.time() 
  3. print(f"timestamp:{timestamp},type:{type(timestamp)}") 
  4. # 時間戳轉(zhuǎn)datetime 
  5. t = datetime.fromtimestamp(timestamp) 
  6. print(f"t:{t},type:{type(t)}") 

執(zhí)行結(jié)果

datetime -> 字符串日期(strftime)

代碼

 
 
 
 
  1. from datetime import datetime 
  2.  
  3. t = datetime.now() 
  4. str_datetime = t.strftime("%Y-%m-%d %H:%M:%S") 
  5. print(f"字符串日期:{str_datetime},type:{type(str_datetime)}") 

執(zhí)行結(jié)果

 

字符串日期 -> datetime(strptime)

代碼

 
 
 
 
  1. from datetime import datetime 
  2.  
  3. str_datetime = "2020-11-29 22:05:20" 
  4. t = datetime.strptime(str_datetime, "%Y-%m-%d %H:%M:%S") 
  5. print(f"t:{t},type:{type(t)}") 

執(zhí)行結(jié)果

時間加減

這才是本次的重頭戲,好像只有datetime這個包,才有時間加減的。

時間加減的具體用途很多,必須多久過期什么的,多久之后提醒,都需要提前計算時間,還是很重要的。

代碼

 
 
 
 
  1. from datetime import datetime 
  2. import datetime as idatetime 
  3.  
  4. t = datetime.now() 
  5. print(f"當前時間:{t}") 
  6. three_day = t + idatetime.timedelta(days=3) 
  7. print(f"三天后時間:{three_day}") 

執(zhí)行結(jié)果

可以發(fā)現(xiàn),這個時間確實是+成功了。

但是自帶的時間加減,有個題,只能加天,不能加月,甚至年。

如果想要時間+月等,還要自己寫邏輯。

datetime時間自由加減

有個包正好解決了這個問題。

安裝

 
 
 
 
  1. pip install python-dateutil 

代碼

 
 
 
 
  1. from datetime import datetime 
  2. from dateutil.relativedelta import relativedelta 
  3.  
  4. t = datetime.now() 
  5. print(f"當前時間:{t}") 
  6. three_time = t + relativedelta(months=3) 
  7. print(f"三個月后時間:{three_time}") 
  8. one_year = t+relativedelta(years=1) 
  9. print(f"一年后時間:{one_year}") 
  10. up_year = t+relativedelta(years=-1) 
  11. print(f"去年這個時間:{up_year}") 

執(zhí)行結(jié)果

用法很簡單,如果想加月/年份,就寫正數(shù),如果想減,就寫負數(shù),這個方法基本上將python在操作時間上的缺點給彌補了。

總結(jié)

本篇主要講述的是關(guān)于Python時間的相關(guān)總結(jié),相對來說,更推薦使用datetime。

需要注意的是,time和datetime是倆類型,是不能混用的。

其實最重要的是字符串時間->時間類型,這個在實際中用的非常多!

順便還有python-dateutil的relativedelta相關(guān)方法,能夠自由加減時間,算是挺方便的。

 


本文標題:一篇文章總結(jié)一下Python庫中關(guān)于時間的常見操作
本文路徑:http://m.5511xx.com/article/cohgcec.html