大家好,這裡是程式員晚楓。知識星球:Python讀者圈
在Python中,表示時間的格式一共有3種:時間戳、結構化時間、格式化時間,2個子產品:time、datetime。
今天我們來一起看一下。
一、3種時間格式,4種生成方式
1、時間戳 - 記錄時間
時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。
import time
time.time() # 時間戳
# 輸出:1659682465.1875775
這種方式得到的時間,一般用來資料庫存儲,非常節省存儲空間。
2、結構化的時間 - 使用時間
所謂結構化時間,你可以了解成把時間進行了分類,分為了:年月日時分秒,你想用哪個類别,就可以直接取出哪個類别。
如果我們想取出一個時間片段,用這個方法就很簡單了,例如:取出目前時間的分鐘數。
import time
time.localtime().tm_min # 結構化時間
# 輸出:30
3、格式化的時間 - 展示時間
這個方法,用來給使用者展示時間。
import time
time.strftime('%Y-%m-%d %H-%M-%S %A')# 格式化時間
# 輸出:'2022-08-04 19-08-35 Friday'
import datetime
datetime.datetime.now()#格式化時間
# 輸出:datetime.datetime(2022, 8, 4, 19, 9, 0, 328515)
二、2個子產品:time,為什麼有datetime子產品?
在前面生成時間的代碼中,我們使用了2個子產品:time和datetime,好像它們之間的功能也是重複的。
既然有了time子產品,為什麼還要有datetime?那是為了簡化time的使用。
datatime子產品重新封裝了time子產品,提供更多接口,提供的類有:date,time,datetime,timedelta,tzinfo。
應用場景
在之前的文章中我們講過:萬字總結!Python 實作定時任務的八種方案
在定時任務中,我想設定一個一周後提醒我的功能。
如果用time子產品進行實作
import time
time.time() + 7*24*60*60 # 7天*24小時*60分鐘*60秒
需要自己計算出7天後的時間戳,而如果使用datetime子產品,這件事就很簡單了:直接
days + 7
,如下圖代碼所示。
import datetime
datetime.datetime.now() + datetime.timedelta(days=7)#格式化時間