大家好,這裡是程序員晚楓。知識星球:Python讀者圈
在Python中,表示時間的格式一共有3種:時間戳、結構化時間、格式化時間,2個模塊:time、datetime。
今天我們來一起看一下。
時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。
import time
time.time() # 時間戳
# 輸出:1659682465.1875775
這種方式得到的時間,一般用來數據庫存儲,非常節省存儲空間。
所謂結構化時間,你可以理解成把時間進行了分類,分為了:年月日時分秒,你想用哪個類別,就可以直接取出哪個類別。
如果我們想取出一個時間片段,用這個方法就很簡單了,例如:取出當前時間的分鐘數。
import time
time.localtime().tm_min # 結構化時間
# 輸出:30
這個方法,用來給用戶展示時間。
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,好像它們之間的功能也是重復的。
既然有了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)#格式化時間
時間戳和結構化數據、字符串數據之間,可以進行轉換。這一點的注意事項見上圖,這裡不再贅述。
如對本篇文章有疑問,可以在評論區,進行更加詳細的溝通