一、datetime模塊介紹
Python中處理日期和時間的主要模塊是datetime。我們可以使用它來完成日期和時間的基本操作,包括創建時間對象、時間計算、時間比較和格式化輸出。它提供的類有四個:datetime、date、time和timedelta。datetime包含了日期和時間;date只包含日期;time只包含時間;timedelta用來計算時間差。
# 導入datetime模塊
import datetime
# 創建時間對象
now = datetime.datetime.now()
print(now)
# 創建日期對象
today = datetime.date.today()
print(today)
# 創建時間對象
t = datetime.time(hour=10, minute=30, second=50)
print(t)
# 創建時間差對象
td = datetime.timedelta(days=1, hours=2, minutes=30, seconds=10)
print(td)
二、時間計算
通過datetime模塊,我們可以對時間進行各種計算,包括時間加減、求時間差、比較時間大小等。
1、時間加減
可以通過timedelta對象的加減來對時間進行加減操作:
# 時間加減
now = datetime.datetime.now()
td = datetime.timedelta(days=1, hours=2, minutes=30, seconds=10)
result = now + td
print(result)
result2 = now - td
print(result2)
2、求時間差
也可以通過timedelta對象來計算時間差,下面代碼示例計算兩個時間點之間的時間差:
start_time = datetime.datetime(2021, 1, 1, 0, 0, 0)
end_time = datetime.datetime(2022, 1, 1, 0, 0, 0)
delta = end_time - start_time
print(delta.days)
3、比較時間大小
比較時間大小可以使用比較運算符,下面代碼示例比較兩個時間點的大小:
start_time = datetime.datetime(2021, 1, 1, 0, 0, 0)
end_time = datetime.datetime(2022, 1, 1, 0, 0, 0)
if start_time < end_time:
print("start_time end_time")
三、時間格式化輸出
datetime模塊提供了strftime()方法,可以根據指定的格式將時間對象格式化輸出。格式化字符串中以%開頭的字符表示輸出時間的不同部分信息,例如%Y輸出年份,%m輸出月份,%d輸出日期,%H輸出小時,%M輸出分鐘,%S輸出秒數等。下面是示例代碼:
now = datetime.datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))
四、時區
時區是指不同地區的標準時間,它與UTC時間的差別會隨着經緯度的不同而不同。Python中可以使用pytz模塊來處理時區相關操作。下面是示例代碼:
import pytz
# 獲取當前時間
now = datetime.datetime.now()
# 設置時區為中國
china_tz = pytz.timezone('Asia/Shanghai')
now = china_tz.localize(now)
# 轉換時區
usa_tz = pytz.timezone('America/New_York')
usa_time = now.astimezone(usa_tz)
print(usa_time.strftime("%Y-%m-%d %H:%M:%S %Z%z"))
五、時間戳
時間戳是指從1970年1月1日00:00:00到某個時間點的秒數,也被稱為Unix時間戳或Unix時間。Python中可以使用time模塊的time()函數來獲取當前時間的時間戳,也可以使用datetime模塊中的timestamp()方法將時間對象轉換為時間戳。下面是示例代碼:
import time
# 獲取當前時間的時間戳
timestamp1 = time.time()
print(timestamp1)
# 將時間對象轉換為時間戳
now = datetime.datetime.now()
timestamp2 = int(now.timestamp())
print(timestamp2)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/250605.html