一、datetime基礎
datetime 是 Python 中處理日期時間的標準模塊。它位於datetime模塊中。datetime有三種類:datetime.datetime 、datetime.date、 datetime.time。其中datetime.datetime是date與time的結合體。
from datetime import datetime dt=datetime(2022,5,1,12,30) print(dt)
上述代碼生成了一個datetime對象dt,表示2022年5月1日12點30分
datetime模塊包含了一些常量,如:datetime.MINYEAR、datetime.MAXYEAR、datetime.month_name、datetime.day_name等常量。 datetime模塊還提供了一些格式化日期時間字符串的函數,如:strftime()函數。我們可以使用字符串進行datetime的創建。
#將字符串轉為datetime對象 dt_str='2020-06-19 16:08:57' dt=datetime.strptime(dt_str,'%Y-%m-%d %H:%M:%S') print(dt)
上述代碼將字符串轉換為datetime對象。 strptime()函數將字符串解析為datetime對象,第二個參數是指定解析後字符串對應datetime格式的字符串。
二、timedelta基礎
timedelta是Python中處理時間差的標準模塊。timedelta的參數可以是天數、小時數、分鐘數、毫秒數等。
timedelta對象支持常規的數學運算符,如加、減、乘、除,可以用來計算間隔的時間。
from datetime import timedelta dt1=datetime(2022,5,1,12,30) dt2=datetime(2022,5,5,10,45) diff=dt2-dt1 print(diff) print(type(diff))
上述代碼生成了timedelta對象diff,表示2022年5月5日10點45分與2022年5月1日12點30分的時間差,即時間間隔為3天21小時15分鐘。
三、應用場景舉例
1.日期加減
timedelta可以方便地完成日期加減的操作。我們可以通過timedelta對象進行日期加減運算。
from datetime import datetime,timedelta dt=datetime(2022,5,1) delta=timedelta(days=7) new_dt=dt+delta print(new_dt)
上述代碼生成的結果是2022年5月8日。
2.計算時間間隔
我們可以使用timedelta對象來計算兩個時間戳之間的時間差。比如計算某個事件執行的時間。
from datetime import datetime
start_time=datetime.now()
...
end_time=datetime.now()
interval=end_time-start_time
print('程序執行時間為:',interval)
上述代碼可以計算程序的執行時間。
3.日期格式轉換
datetime對象可以與字符串相互轉換,常用的格式化字符串有:’%Y-%m-%d %H:%M:%S’(包括年月日時分秒)和’%Y-%m-%d’(只包括年月日)等。
#日期對象轉為字符串
dt=datetime(2022,5,1)
date_str=dt.strftime('%Y-%m-%d')
print(date_str)
#字符串轉為日期對象
dt_str='2022-05-01'
dt=datetime.strptime(dt_str,'%Y-%m-%d')
print(dt)
上述代碼將日期對象轉換為字符串和將字符串轉換為日期對象。
4.時區處理
在處理全球時間時需要考慮時區的影響,Python提供了pytz模塊來處理時區。
#導入pytz模塊
import pytz
from datetime import datetime
#獲取UTC時間
utc_dt=datetime.utcnow()
#將UTC時間字符串轉為datetime對象
utc_dt=datetime.strptime(str(utc_dt), '%Y-%m-%d %H:%M:%S.%f')
#創建時區對象
tz=pytz.timezone('Asia/Shanghai')
#將UTC時間轉為對應時區時間
local_dt=utc_dt.replace(tzinfo=pytz.utc).astimezone(tz)
print('UTC時間:',utc_dt)
print('本地時間:',local_dt)
上述代碼將UTC時間轉換為本地時間。
五、總結
datetime與timedelta是Python中重要的時間處理模塊,可以滿足日常使用中大部分時間操作需求。而pytz模塊則能夠很好地解決時區轉換問題。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/249615.html
微信掃一掃
支付寶掃一掃