1. 獲取當前日期和時間
為什麼需要這個?
眾所周知,時間就是金錢。而在程式設計中,時間還是控制、計劃和自動化的關鍵。 比如,如果你想在特定時間執行任務或記錄事件,必須意識到時鐘在滴答作響,並知道如何與之互動。
關於 datetime
的基礎
好吧,假設我們開始使用 datetime
模組。這比構建火箭簡單多了!讓我們從獲取當前日期和時間開始:
from datetime import datetime
# 獲取當前日期和時間
now = datetime.now()
print("當前日期和時間:", now)
這段程式碼的意思是 "嘿,datetime
,讓我們看看現在是幾點!" 有趣的是,
now()
會返回一個 datetime
對象,這個對象包含有關當前時間的全部資訊。
是的,就像一個無所不知的教授。
本地時間與全球協調時間 (UTC)
啊,UTC——一種可以將我們所有人連接起來的全球時間,沒有多餘的時區錯亂。如果你想知道火星上的準確時間(嗯,差不多), 這個就很適合你。獲取它的方法如下:
# 獲取當前 UTC 時間
now_utc = datetime.utcnow()
print("當前日期和時間 (UTC):", now_utc)
你可能會問,有什麼不同?本地時間會考慮到你的時區,而 UTC 是格林威治時間,不受地理位置的影響。
提取日期和時間的元素
有時,我們不需要完整的日期,只需要其中的一部分。這就像點披薩只要起司——雖然不一定合理,但有時必須如此:
# 提取日期和時間的各個部分
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second
print(f"現在是 {hour}:{minute}:{second} {day}.{month}.{year}")
這樣,我們就可以單獨處理日期和時間的元素,比如為同事慶祝生日(當然,前提是他自己提醒我們)。
當前日期和時間的使用範例
另一種情況是,當你需要安排在不同時間發生的事件時。例如,讓我們寫一個最簡單的腳本,每週五祝大家愉快(因為誰不喜歡周五呢?)。
# 使用當前日期的範例,用於每日提醒
if now.weekday() == 4: # 周五
print("耶!今天是周五,該休息啦!")
else:
print("再等等,周五還沒到。")
這段程式碼使用 weekday()
方法,返回從 0 到 6 的數字(0 是周一,6 是周日),
來查看今天是星期幾並提醒大家即將迎來周末狂歡。
2. 操作 datetime
對象
我們不僅需要知道當前時間,還需要知道如何通過操作或比較從一個時間點移動到另一個。例如,你如何計算與同事見面遲到了多久?
# 時間差的範例
from datetime import timedelta
# 創建過去的日期
past_date = datetime(2023, 1, 1, 10, 0, 0)
# 計算當前時間與過去的時間差
difference = now - past_date
print(f"自那天起已經過去 {difference.days} 天和 {difference.seconds // 3600} 小時。")
這裡我們創建了一個過去的日期並與當前進行對比。從新年到現在已經過了多少天?現在你知道了!
3. 處理時區
在 datetime
中處理時區需要使用 pytz
庫,這個庫允許我們將日期和時間轉換為需要的時區。
使用 pytz
的範例
from datetime import datetime
import pytz
# 獲取當前 UTC 日期和時間
utc_now = datetime.now(pytz.utc)
print("當前日期和時間 (UTC):", utc_now)
# 轉換為其他時區 (例如, US/Pacific)
pacific_now = utc_now.astimezone(pytz.timezone("US/Pacific"))
print("當前日期和時間 (Pacific Time):", pacific_now)
輸出:
當前日期和時間 (UTC): 2024-11-04 14:53:27.123456+00:00
當前日期和時間 (Pacific Time): 2024-11-04 06:53:27.123456-08:00
GO TO FULL VERSION