一、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-tw/n/249615.html