當前位置: 妍妍網 > 辦公

一個超酷的Python庫時間庫:pendulum

2024-06-03辦公

今天為大家分享一個超酷的 Python 庫 - pendulum。

Github地址: https://github.com/sdispater/pendulum

日期和時間處理在許多應用程式中都是常見的任務,然而,Python標準庫中的 datetime 模組在某些情況下可能會顯得繁瑣和不夠直觀。Pendulum 庫,它提供了更簡單和更強大的日期和時間處理功能。本文將深入介紹 Pendulum 庫的基本概念、安裝方法以及詳細的範例程式碼,以幫助大家了解如何使用 Pendulum 來處理日期和時間。

什麽是 Pendulum?

Pendulum 旨在提供更直觀和功能豐富的日期和時間操作功能。它建立在 Python 標準庫中的 datetime 模組之上,提供了更多功能、更簡單的 API,並解決了時區和日期時間算術等問題。

Pendulum 的主要特點包括:

  • 直觀的 API :Pendulum 提供了易於理解和使用的方法和內容,使日期和時間操作更加直觀。

  • 時區感知 :Pendulum 對時區的支持非常強大,可以輕松處理不同時區的日期和時間。

  • 不可變性 :Pendulum 中的日期時間物件是不可變的,這意味著一旦建立,它們不能被修改,而是返回新的物件。

  • 日期時間算術 :Pendulum 提供了豐富的日期時間算術功能,包括相對日期、日期範圍和時差計算。

  • 格式化和解析 :Pendulum 支持多種日期時間格式的解析和格式化,能夠輕松地與其他系統和檔格式互動。

  • 安裝 Pendulum

    要開始使用 Pendulum,首先需要安裝它。可以使用 pip 來安裝 Pendulum:

    pip install pendulum

    安裝完成後,就可以在 Python 程式碼中匯入 Pendulum 並開始使用它。

    基本用法

    建立 Pendulum 物件

    使用 Pendulum 建立日期時間物件非常簡單。下面是一些常見的建立方式:

    import pendulum
    # 獲取當前時間
    now = pendulum.now()
    # 使用時間戳建立 Pendulum 物件
    timestamp = 1609459200# 2021-01-01 00:00:00
    pendulum_obj = pendulum.from_timestamp(timestamp)
    # 使用日期字串建立 Pendulum 物件
    date_string = "2022-12-31T23:59:59"
    pendulum_obj = pendulum.parse(date_string)
    # 指定時區建立 Pendulum 物件
    pendulum_obj = pendulum.now('US/Pacific')


    存取 Pendulum 物件的內容

    Pendulum 物件提供了易於存取日期時間內容的方式:

    import pendulum
    now = pendulum.now()
    # 獲取年份、月份、日期、小時、分鐘、秒鐘
    year = now.year
    month = now.month
    day = now.day
    hour = now.hour
    minute = now.minute
    second = now.second

    格式化和解析日期時間

    Pendulum 支持豐富的日期時間格式化和解析功能:

    import pendulum
    # 格式化日期時間為字串
    now = pendulum.now()
    formatted = now.to_iso8601_string()
    print(formatted) # 例如:2022-12-31T23:59:59+00:00
    # 解析字串為 Pendulum 物件
    date_string = "2022-12-31T23:59:59"
    parsed = pendulum.from_format(date_string, 'YYYY-MM-DDTHH:mm:ss')

    日期時間算術

    Pendulum 提供了強大的日期時間算術功能,允許執行各種日期時間操作:

    import pendulum
    # 相對日期時間算術
    now = pendulum.now()
    tomorrow = now.add(days=1)
    next_week = now.add(weeks=1)
    last_month = now.subtract(months=1)
    # 計算日期範圍
    start_date = pendulum.datetime(202211)
    end_date = pendulum.datetime(20221231)
    date_range = pendulum.period(start_date, end_date)
    # 計算時差
    start_time = pendulum.datetime(202211000)
    end_time = pendulum.datetime(2022111200)
    time_diff = end_time - start_time

    時區處理

    Pendulum 對時區的支持非常強大,可以輕松處理不同時區的日期和時間:

    import pendulum
    # 建立帶有時區資訊的 Pendulum 物件
    pacific = pendulum.now('US/Pacific')
    # 轉換時區
    eastern = pacific.in_tz('US/Eastern')
    # 獲取當前時區資訊
    current_timezone = pendulum.now().timezone_name

    處理不同時區的時間

    透過一個範例來演示 Pendulum 如何處理不同時區的時間。假設需要計算紐約和倫敦之間的時間差:

    import pendulum
    # 建立帶有時區資訊的 Pendulum 物件
    new_york = pendulum.now('US/Eastern')
    london = pendulum.now('Europe/London')
    # 計算時間差
    time_difference = new_york.diff(london)
    # 輸出結果
    print(f"New York Time: {new_york}")
    print(f"London Time: {london}")
    print(f"Time Difference: {time_difference.in_hours()} hours")

    在這個範例中,首先建立了帶有紐約和倫敦時區資訊的 Pendulum 物件,然後使用 diff 方法計算了它們之間的時間差,並將結果以小時為單位輸出。

    構建一個簡單的生日提醒套用

    透過一個更實際的範例來展示 Pendulum 的用法。構建一個簡單的生日提醒套用,使用者可以輸入生日日期,然後套用會計算距離生日還有多少天,並給出相應的提醒。

    import pendulum
    # 輸入生日日期
    birthday = input("Enter your birthday (YYYY-MM-DD): ")
    # 解析輸入日期為 Pendulum 物件
    birthday_date = pendulum.from_format(birthday, 'YYYY-MM-DD')
    # 獲取當前日期
    today = pendulum.now()
    # 計算距離生日還有多少天
    days_until_birthday = today.diff(birthday_date).in_days()
    # 判斷距離生日的天數,並給出提醒
    if days_until_birthday == 0:
    print("Happy Birthday!")
    elif days_until_birthday < 0:
    print(f"Your birthday was {-days_until_birthday} days ago.")
    else:
    print(f"Your birthday is in {days_until_birthday} days.")



    在這個範例中,首先要求使用者輸入生日日期,並將其解析為 Pendulum 物件。然後,獲取當前日期,計算距離生日還有多少天,並根據不同的情況給出相應的提醒。

    總結

    Pendulum 是一個強大的 Python 庫,用於簡化日期和時間處理。它提供了直觀的 API、豐富的功能和強大的時區支持,使日期和時間操作更加容易和可靠。透過本文提供的範例和介紹,希望能夠輕松掌握 Pendulum,並在計畫中更高效地處理日期和時間。

    Crossin的新書【 碼上行動:用ChatGPT學會Python編程 】已經上市了。 本書以ChatGPT為輔助,系統全面地講解了如何掌握Python編程,適合Python零基礎入門的讀者學習。

    購買後可加入讀者交流群,Crossin為你開啟陪讀模式,解答你在閱讀本書時的一切疑問。

    Crossin的其他書籍:

    添加微信 crossin123 ,加入編程教室共同學習 ~

    感謝 轉發 點贊 的各位~