首頁 > 軟體

一文掌握python中的時間包

2022-08-11 14:02:11

python中的時間包

datetime時間包

  • datetime包是日期與時間的結合體(date&time)
  • 可以獲取當前時間
  • 可以獲取時間間隔
  • 可以將時間物件轉換成時間字串
  • 可以將字串轉成時間型別

匯入datetime有兩種方式:匯入datetime模組或直接匯入datetime包:

from datetime import datetime

import datetime

獲取當前時間

使用方法:

datetime.now()   # 匯入模組後呼叫方法
datetime.datetime.now  # 直接匯入包後呼叫方法

注意,返回的是一個物件,一個類的範例化物件

獲取時間間隔

單使用獲取時間間隔並沒有什麼用處,要配合獲取當前時間來使用

使用方法:

from datetime import datetime
from datetime import timedelta  # timedelta是一個函數

timeobj = timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, week=0)
# 後面的引數分別代表天,秒,毫秒,微秒,分鐘,小時,周;對應的值傳入整型
# 返回的是一個間隔時間段的物件,一個類的範例化物件

例子:

獲取前一天的當前時間:

時間物件轉時間字串

上面講到的獲取到的當前時間和時間間隔都是一個物件,而時間物件是無法進行傳輸的,我們需要將時間物件轉換成字串

方法:

時間物件.strftime(format)
# format為想要轉成的格式,例如format為'%Y-%m-%d'時,會轉換成‘年-月-日'格式

例子:

時間字串轉時間物件

時間字串是無法進行加減法的,想要進行加減法,還需要將時間字串轉換成時間物件

方法:

from datetime import datetime

str_date = '2022-08-08 11:06:06'
date_obj = datetime.strptime(str_date, '%Y-%m-%d %H:%M:%S')
# datetime.striptime()返回的是個時間物件

例子:

注意:strptime(str, '%Y-%m-%d %H:%M:%S')左邊字串的格式一定要和右邊引數的格式一致,否則會報錯:

擴充套件–時間格式字元

時間格式字元除了上面提到的%Y %m %d %H %M %S外,代表年、月、日、時、分、秒,還有其他的字元,只不過不常用:

字元描述
%I一天中的第幾個小時(12小時制,01~12),%H是24小時制
%f毫秒
%a簡化的星期,如星期三Wed
%A完整的星期,如星期三Wednesday
%b簡化的月份,如二月Feb
%B完整的月份,如二月February
%c本地日期和時間,如Wed Feb 5 10:14:28 2022
%p顯示的上午還是下午,AM/PM
%j一年中的第幾天
%U一年中的星期數
  

時間戳–timestamp

什麼是時間戳?

時間戳就是從1970年1月1日00時00分00秒至今的總毫秒(秒)數

時間戳是float型別

將時間物件轉換成時間戳

方法:

from datetime import datetime

datetime.timestamp(datetime.now())  # 返回當前時間戳

將時間戳轉換成時間物件

方法:

from datetime import datetime
datetime.fromtimestamp(timestamp)  # 返回時間物件

例子:

time時間包

獲取當前時間戳

方法:

import time
time.time()
# 返回秒級別的時間戳(浮點型別)
# 如果想獲取毫秒級別的時間戳,只需要用秒級時間戳*1000即可

獲取本地時間

方法:

import time
time.localtime(timestamp)
# 傳入一個時間戳,也可以不傳,如果不傳會預設當前時間
# 返回一個物件(time.struct_time),物件的屬性有時間資訊

time.localtime()返回的物件屬性裡有年月日時分秒等資訊:

屬性描述取值範圍
tm_year四位數年2020
tm_mon1~12
tm_mday1~31
tm_hour0~23
tm_min0~59
tm_sec0~61
tm_wday一週的第幾天0~6(0是週一)
tm_yday一年的第幾日1~366
tm_isdst夏時令-1,0,1是否時夏時令

暫停函數sleep

用法:

import time
time.sleep(second)  # 傳入希望暫停的秒數

time中的strftime和strptime

strftime使用方法:

import time

time.strftime(format, t)
# format--格式化時間標準; t--time.localtime()返回的時間物件

strptime使用方法:

import time

time.strptime(time_str, format)
# time_str--時間格式的字串; format--與time_str一致的格式化時間標準

思考:datetime和time都功能類似,為什麼還需要兩個包呢?

答:在工作過程中,datetime常用於對日期的處理,而time常用於對時間的處理。

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


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