CodeGym /Adesua ahorow /Python SELF TW /使用 datetime 模組

使用 datetime 模組

Python SELF TW
等級 39 , 課堂 1
開放

1. 獲取當前日期和時間

為什麼需要這個?

眾所周知,時間就是金錢。而在程式設計中,時間還是控制、計劃和自動化的關鍵。 比如,如果你想在特定時間執行任務或記錄事件,必須意識到時鐘在滴答作響,並知道如何與之互動。

關於 datetime 的基礎

好吧,假設我們開始使用 datetime 模組。這比構建火箭簡單多了!讓我們從獲取當前日期和時間開始:

Python

from datetime import datetime

# 獲取當前日期和時間
now = datetime.now()
print("當前日期和時間:", now)

這段程式碼的意思是 "嘿,datetime,讓我們看看現在是幾點!" 有趣的是, now() 會返回一個 datetime 對象,這個對象包含有關當前時間的全部資訊。 是的,就像一個無所不知的教授。

本地時間與全球協調時間 (UTC)

啊,UTC——一種可以將我們所有人連接起來的全球時間,沒有多餘的時區錯亂。如果你想知道火星上的準確時間(嗯,差不多), 這個就很適合你。獲取它的方法如下:

Python

# 獲取當前 UTC 時間
now_utc = datetime.utcnow()
print("當前日期和時間 (UTC):", now_utc)

你可能會問,有什麼不同?本地時間會考慮到你的時區,而 UTC 是格林威治時間,不受地理位置的影響。

提取日期和時間的元素

有時,我們不需要完整的日期,只需要其中的一部分。這就像點披薩只要起司——雖然不一定合理,但有時必須如此:

Python

# 提取日期和時間的各個部分
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}")

這樣,我們就可以單獨處理日期和時間的元素,比如為同事慶祝生日(當然,前提是他自己提醒我們)。

當前日期和時間的使用範例

另一種情況是,當你需要安排在不同時間發生的事件時。例如,讓我們寫一個最簡單的腳本,每週五祝大家愉快(因為誰不喜歡周五呢?)。

Python

# 使用當前日期的範例,用於每日提醒
if now.weekday() == 4:  # 周五
    print("耶!今天是周五,該休息啦!")
else:
    print("再等等,周五還沒到。")

這段程式碼使用 weekday() 方法,返回從 0 到 6 的數字(0 是周一,6 是周日), 來查看今天是星期幾並提醒大家即將迎來周末狂歡。

2. 操作 datetime 對象

我們不僅需要知道當前時間,還需要知道如何通過操作或比較從一個時間點移動到另一個。例如,你如何計算與同事見面遲到了多久?

Python

# 時間差的範例
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 的範例

Python

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
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION