CodeGym /Java Adesua /Python SELF TW /Python 中日期和時間的基礎操作

Python 中日期和時間的基礎操作

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

日期和時間操作入門

讓我們從一個小小的思考開始:想像一下,如果電腦無法處理日期和時間。慘了! 我們最愛的裝置將完全無法在規劃和自動化任務中發揮作用。讓我們來看看, Python 是怎麼幫助我們不遲到重要會議,以及維持日常任務的自動化。

處理日期和時間是程式設計不可或缺的一部分,特別是在提到自動化的時候。 想像一下這樣的情景:你有需要每小時更新的報表,或者需要提醒你該休息一下的提示 (是啊,你已經坐在電腦前整整 5 個小時了!)。Python 提供了很多工具來處理日期和時間, 我們會在這堂課中詳細介紹。

1. 用於日期和時間的模組

在 Python 中,有幾個模組可以方便地處理日期和時間。我們將聚焦於三個主要模組: datetimetimecalendar

  • datetime:我們處理日期和時間的大部分工作都會用到它。 它提供了用於處理單個日期、時間以及它們的組合的類別。
  • time:這個模組提供了用於處理低層次時間表達的函數, 通常用於與系統時間交互。
  • calendar:幫助你處理日曆(嗯,這個好理解)。

datetime 模組的主要函數和類別

我們來深入了解 datetime 模組,並探討它的核心組件。

date 類別

這個類別用於處理日期。它允許設置和更改年份、月份和日期,而不需要與時間相關聯。

Python

from datetime import date

# 創建 date 對象
my_birthday = date(1990, 12, 25)
print("我生日的日期:", my_birthday)

time 類別

顧名思義,這個類別專注於時間——小時、分鐘和秒。對於需要單獨處理時間而非日期的情況,它特別實用。

Python

from datetime import time

# 創建 time 對象
meeting_time = time(14, 30)  # 14:30
print("會議時間安排在:", meeting_time)

datetime 類別

最通用的類別,將日期和時間結合成一體。

Python

from datetime import datetime

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

2. 使用 datetime 模組獲取當前日期和時間

獲取當前日期和時間是規劃和自動化的基礎。在 datetime 中,有幾個方便的方法來達成這個目的。

獲取當前日期和時間

借助 datetime.now()datetime.today() 方法, 你可以輕鬆獲取當前的日期和時間。

Python

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

today = datetime.today()
print("當前日期 (today):", today)

處理 datetime 對象

datetime 對象允許你提取時間的組件,如年份、月份、日期等。 還有一點很重要,那就是本地時間和全球時間(UTC)之間的差異。

Python

year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second

print(f"今天是: {day}/{month}/{year}, 時間是: {hour}:{minute}:{second}")

在實現應用程式時,務必要記住本地時間和 UTC 時間的差異, 因為世界很大,每個人都有自己的時鐘!

3. 實際任務中使用當前日期和時間的示例

假如你需要每小時從某個來源提取數據。這可以通過比較當前時間和上次提取的時間來輕鬆自動化。例如:

Python

from datetime import timedelta

last_run = datetime.now() - timedelta(hours=1)
current_time = datetime.now()

# 如果上次運行已超過一小時
if current_time - last_run > timedelta(hours=1):
    print("該更新數據了!")
    last_run = current_time

這段代碼有效地提醒我們只有在超過一小時後才需要做一些事情。 注意使用 timedelta 進行時間的數學操作是多麼方便。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION