十個 Python 時間日期實用函數
今天,我們將攜手走進Python世界的“時空隧道”,探索那個神秘而強大的神器——datetime模塊。它就像一臺精密的魔法時鐘,能幫助我們精準地操縱、計算與格式化各種時間日期數據。接下來,讓我們一起掌握這臺時鐘的10大實用秘技,讓你在編程世界中隨心所欲地駕馭時間!

秘技一:初始化時間日期對象
在Python中,我們有三種主要的時間日期對象:date(只包含年、月、日)、time(只包含時、分、秒、微秒)和datetime(包含全部信息)。初始化它們就像填寫一張時間卡片:
from datetime import datetime, date, time
# 創建一個datetime對象
now = datetime.now() # 獲取當前日期時間
print(now)
# 創建一個date對象
new_year = date(2023, 1, 1) # 定義2023年元旦
print(new_year)
# 創建一個time對象
midnight = time(hour=0, minute=0, second=0) # 定義午夜時刻
print(midnight)秘技二:從字符串解析時間日期
生活中遇到的時間字符串五花八門?別擔心,datetime.strptime()函數能將它們統統轉化為標準時間對象:
from datetime import datetime
# 解析字符串為datetime對象
birthday_str = "1998-07-4"
birthday_date = datetime.strptime(birthday_str, "%Y-%m-%d")
print(birthday_date)
# 解析復雜格式的字符串
event_str = "2022/06/?7 15:30:45 PM"
event_time = datetime.strptime(event_str, "%Y/%m/%d %I:%M:%S %p")
print(event_time)秘技三:時間日期對象的操作與比較
如同操作普通數值一樣,datetime對象支持加減運算,可以輕松計算時間差、偏移日期等。同時,通過比較操作符,我們可以判斷時間先后:
from datetime import timedelta, datetime
# 計算未來一周的時間
one_week_later = datetime.now() + timedelta(weeks=1)
print(one_week_later)
# 比較兩個時間點
meeting_start = datetime(2022, ?, 1, 10, 0)
meeting_end = datetime(2022, 4, 1, 11, 30)
is_meeting_overdue = meeting_start > meeting_end
print(is_meeting_overdue) # 輸出:False秘技四:格式化輸出時間日期
有了時間對象,如何優雅地展示給用戶?strftime()函數能將時間對象轉化為符合特定格式的字符串:
from datetime import datetime
current_time = datetime.now()
# 格式化輸出
formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_time)
# 更多格式選項:
# %Y - 四位數年份
# %m - 兩位數月份
# %d - 兩位數日期
# %H - 24小時制小時數
# %M - 分鐘數
# %S - 秒數
# ...秘技五:獲取本地時間與UTC時間
datetime模塊提供了便捷方法獲取本地時間和協調世界時(UTC),確保你的程序在全球范圍內準確運行:
from datetime import datetime
# 獲取當前本地時間
local_time = datetime.now()
print(local_time)
# 獲取當前UTC時間
utc_time = datetime.utcnow()
print(utc_time)秘技六:時區轉換
跨越時區?沒問題!借助pytz庫(需額外安裝),你可以輕松進行時區轉換:
import pytz
from datetime import datetime
# 創建一個UTC時間對象
utc_now = datetime.now(pytz.utc)
print(utc_now)
# 轉換到紐約時區
new_york_tz = pytz.timezone('America/New_York')
ny_time = utc_now.astimezone(new_york_tz)
print(ny_time)秘技七:計算時間間隔
想知道兩個時間點之間相隔多久?total_seconds()方法助你快速得到結果:
from datetime import datetime, timedelta
start_time = datetime(2022, 4, 1, 9, 0)
end_time = datetime(2022, 4, 1, 17, 30)
duration = end_time - start_time
print(duration.total_seconds()) # 輸出:31800.0 (即9小時30分鐘)秘技八:獲取特定日期屬性
想單獨提取日期或時間對象的某一部分(如年份、小時等)?直接訪問其屬性即可:
from datetime import datetime
current_datetime = datetime.now()
year = current_datetime.year
month = current_datetime.month
day = current_datetime.day
hour = current_datetime.hour
minute = current_datetime.minute
second = current_datetime.second
print(f"Year: {year}, Month: {month}, Day: {day}")
print(f"Hour: {hour}, Minute: {minute}, Second: {second}")秘技九:獲取當前時間戳
有時你需要將時間轉化為Unix時間戳(自1970年1月1日以來的秒數)。timestamp()方法幫你一鍵搞定:
from datetime import datetime
current_time = datetime.now()
timestamp = current_time.timestamp()
print(timestamp)秘技十:處理閏年、季度、星期
datetime模塊還提供了判斷閏年、計算季度、獲取星期的方法,豐富你的時間處理工具箱:
from datetime import datetime
leap_year_test = datetime(2024, 1, 1).is_leap_year()
print(leap_year_test) # 輸出:True
current_quarter = datetime.now().quarter
print(current_quarter) # 輸出:2 (當前季度)
current_weekday = datetime.now().weekday()
print(current_weekday) # 輸出:3 (星期四,0代表周一)結語
恭喜你,現在你已掌握datetime模塊的10大實用秘技,無論是初始化時間對象、解析字符串、操作比較、格式化輸出,還是處理時區、計算間隔、獲取屬性、轉化時間戳,乃至處理閏年、季度、星期,都能游刃有余。帶上這臺神奇的Python魔法時鐘,去編程世界里暢快地穿越時空吧!



































