最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

最好的Python DateTime 庫之 Pendulum 長篇解析

 更新時間:2021年11月16日 11:27:58   作者:Python學習與數(shù)據(jù)挖掘  
datetime 模塊是 Python 中最重要的內(nèi)置模塊之一,它為實際編程問題提供許多開箱即用的解決方案,非常靈活和強大。例如,timedelta 是我最喜歡的工具之一

不過不得不說,datetime模塊也有一些限制。 例如,當我們處理時區(qū)時,通常會顯得短缺。有時,我們不得不引入一些第三方庫作為補充。 此外,datetime 模塊中的某些方面在其他編程語言中不很直觀或不常用。

在本文中,我將介紹一個名為 Pendulum 的第三方庫,它將解決內(nèi)置 datetime 模塊的所有問題,歡迎收藏學習,喜歡點贊支持,文末提供技術(shù)交流群。

1.直接替換 datetime

在這里插入圖片描述

使用 pytz 等第三方庫來解決一些 Python datetime不擅長的問題并不少見。但是,我們?nèi)匀恍枰獙?datetime 模塊并將其用作必不可少的,因為我們需要使用它來實例化 datetime 對象。

讓我向你展示為什么 Pendulum 是一種替代品。 首先,我們需要使用pip安裝它。

pip install pendulum

該庫的名稱有點長,因此我建議使用別名導入它

import pendulum as pdl

雖然 pd 是一個較短的縮寫,但我會為 Pandas 保留它。不想制造任何混亂。

讓我們使用 Pendulum 創(chuàng)建一個 datetime 對象,并看看它的對象類型。

from datetime import datetime
dt = pdl.datetime(2021, 11, 6)
isinstance(dt, datetime)

在這里插入圖片描述

Pendulum 繼承了 Python datetime 對象。 因此,我們無需擔心使用 datetime 模塊中的一些原始功能。 從字面上看,Pendulum datetime 對象是 Python datetime 對象。

2. 時區(qū)

在這里插入圖片描述

Pendulum 庫最令人印象深刻的功能是時區(qū), 這也是內(nèi)置 datetime 模塊的關(guān)鍵問題之一。 在 Python 3.9 之前,如果我們想使用 IANA 時區(qū),我們必須涉及 pytz。

使用 Pendulum 庫,我們可以像這樣輕松地創(chuàng)建一個帶有時區(qū)的日期時間對象。

dt_melbourne = pdl.datetime(2021, 11, 6, tz='Australia/Melbourne')
dt_brisbane = pdl.datetime(2021, 11, 6, tz='Australia/Queensland')
print(dt_melbourne)
print(dt_brisbane)

在這里插入圖片描述

在上面的例子中,我們同時創(chuàng)建了兩個對象。 但是,時區(qū)是不同的。 Pendulum 還允許我們輕松比較時間。

dt_melbourne.diff(dt_brisbane).in_hours()

在這里插入圖片描述

多么容易??! 比較具有不同時區(qū)的兩個日期時間對象并獲得確切結(jié)果!

如果我們需要定義多個 datetime 對象并希望重新使用 timezone 字符串,我們可以創(chuàng)建一個 timezone 對象并將其傳遞給 datetime 構(gòu)造函數(shù)。

my_timezone = pdl.timezone('Australia/Melbourne')
dt_melbourne = pdl.datetime(2021, 11, 6, tz=my_timezone)
print(dt_melbourne)
print(dt_melbourne.timezone.name)

在這里插入圖片描述

另一個很酷的功能是將時間返回到不同的時區(qū)。 例如,墨爾本是午夜,那么布里斯班是幾點?

在這里插入圖片描述

3. 日期時間解析

在這里插入圖片描述

解析日期時間可能是編程中最常見的用例,Python datetime 模塊做得很好。 但是與大多數(shù)其他編程語言相比,Python 使用了不同的格式 %Y%m%d。

Pendulum 允許我們使用如下常見的格式代碼

pdl.from_format('2021-11-06 22:00:00', 'YYYY-MM-DD HH:mm:ss')

在這里插入圖片描述

此外,它完全支持 RFC 3339 和 ISO 8601 格式,以及其他一些常見格式。 這意味著我們不必指定格式代碼來將字符串解析為日期時間。

在這里插入圖片描述

Pendulum 還集成了許多常見的日期時間擴展,例如 dateutil。 如果我們希望庫依賴于 dateutil 解析器,我們可以傳遞標志 strict=False。

pdl.parse('21-11-06', strict=False)

在這里插入圖片描述

除此之外,Pendulum 即時支持更多格式。 例如,只有數(shù)字的日期時間。

在這里插入圖片描述

這個很有趣,指定年份、周數(shù)和那一周的日期,Pendulum 給你正確的日期時間。

在這里插入圖片描述

如果我們特別想要一個日期對象或一個時間對象,只需指定exact=True,這比Python datetime 模塊容易得多。

在這里插入圖片描述

4. 字符串格式化

將字符串解析為日期時間對象后,下一件重要的事情就是將日期時間輸出為具有格式的字符串。

首先,讓我們有一個 datetime 對象。 由于 Pendulum 繼承了 Python datetime,我們可以使用 now() 等所有方法。

在這里插入圖片描述

然后,讓我從 Pendulum 中挑選幾個“to string”方法的例子,看看用開箱即用的格式輸出日期時間是多么容易。

dt.to_date_string()  # with date only
dt.to_time_string()  # with time only
dt.to_formatted_date_string()  # month_abbr date, year
dt.to_day_datetime_string() # day, month_abbr date, year hh:mm am/pm
dt.to_iso8601_string()  # to ISO 9601 standard
dt.to_atom_string()  # to Atom format
dt.to_cookie_string()  # to cookie style format

在這里插入圖片描述

當然,我們可以使用格式碼來自定義輸出字符串,格式更直觀。

在這里插入圖片描述

另一個很酷的東西是我們可以輕松地將一些不相關(guān)的字符串添加到格式字符串中,并讓它們脫離格式。

在這里插入圖片描述

5. 人類可讀性

在內(nèi)置的 Python datetime 模塊中,timedelta 工具可以很好地完成比較工作。 然而,Pendulum 甚至可以通過在比較兩個日期時間對象時提供一些更人性化的輸出來改進它。

例如,diff_for_humans() 方法將日期時間對象與當前時間進行比較,并返回一個非常人性化的輸出。

在這里插入圖片描述

6. 查找相對日期時間

在這里插入圖片描述

內(nèi)置 Python 日期時間可以改進的方面之一是根據(jù)給定的日期時間查找相對日期時間。 例如,當我們要查找當月的最后一天時,我們必須使用 datetutil 模塊中的 relativedelta。

from dateutil.relativedelta import relativedelta
datetime.datetime(2013, 2, 21) + relativedelta(day=31)

此外,代碼不是很可讀,因為我們使用 day=31 作為參數(shù),盡管當月份少于 31 天時它會起作用。

在 Pendulum 中,再簡單不過了。

在這里插入圖片描述

內(nèi)置 datetime 模塊的另一個不便之處是查找一周中的某一天。 例如,如果我們要查找下周一的日期,這可能是最簡單的方法。

from datetime import datetime, timedelta
datetime.now() + timedelta(days=(0-datetime.now().weekday()+7)%7)

它可以完成這項工作,但可讀性差。 開發(fā)人員需要花一些時間來理解這行代碼的邏輯是什么。

使用 Pendulum,就這么簡單

在這里插入圖片描述

我們甚至不用考慮用 0 還是 1 來表示星期一,因為 Pendulum 使用枚舉來表示星期一。

同樣,我們可以使用 previous() 方法來查找上一個星期二,如下所示。 此外,我們可以通過設(shè)置參數(shù) keep_time=True 來保留時間部分。

在這里插入圖片描述

7. 一些額外的便利

在這里插入圖片描述

這個庫中隱藏著更多的“秘密”。 再舉幾個例子,比如昨天或明天。

在這里插入圖片描述

輸出具有不同文化和語言區(qū)域設(shè)置的日期時間也很容易。

在這里插入圖片描述

再舉一個例子。 如果一個人出生于 1988 年 1 月 1 日,那么這個人的年齡是多少?

在這里插入圖片描述

總結(jié)

在本文中,我介紹了Python 第三方庫 Pendulum,它是 Python 內(nèi)置 datetime 模塊的直接替代品。 通過使用這個庫,datetime 模塊可以解決的許多問題,例如查找相對日期,現(xiàn)在都可以輕松解決。

更重要的是,Pendulum 提供了整潔干凈的 API 來提高我們代碼的可讀性,并且這些解決方案更加直觀。

技術(shù)交流

歡迎轉(zhuǎn)載、收藏、有所收獲點贊支持一下!

在這里插入圖片描述

到此這篇關(guān)于最好的Python DateTime 庫之 Pendulum 長篇解析的文章就介紹到這了,更多相關(guān)Python Pendulum內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 用Python實現(xiàn)童年貪吃蛇小游戲功能的實例代碼

    用Python實現(xiàn)童年貪吃蛇小游戲功能的實例代碼

    這篇文章主要介紹了用Python實現(xiàn)童年貪吃蛇小游戲功能的實例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Python中range、np.arange和np.linspace的區(qū)別

    Python中range、np.arange和np.linspace的區(qū)別

    本文主要介紹了Python中range、np.arange和np.linspace的區(qū)別,文中根據(jù)實例編碼詳細介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • python淺析守護線程與非守護線程的區(qū)別與使用

    python淺析守護線程與非守護線程的區(qū)別與使用

    守護線程,又稱后臺線程,它是在后臺運行的,如果所有前臺線程都死亡,那么后臺線程就會自動死亡,本章我們來了解守護線程與非守護線程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-08-08
  • 推薦技術(shù)人員一款Python開源庫(造數(shù)據(jù)神器)

    推薦技術(shù)人員一款Python開源庫(造數(shù)據(jù)神器)

    今天小編給大家推薦一款Python開源庫,技術(shù)人必備的造數(shù)據(jù)神器!非常不錯,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-07-07
  • 利用Python matplotlib繪制風能玫瑰圖

    利用Python matplotlib繪制風能玫瑰圖

    這篇文章主要給大家介紹了關(guān)于如何利用Python matplotlib繪制風能玫瑰圖的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 超詳細,教你用python語言實現(xiàn)QQ機器人制作教程

    超詳細,教你用python語言實現(xiàn)QQ機器人制作教程

    這篇文章主要介紹了如何python語言實現(xiàn)QQ機器人,用圖文詳細的描述了其中的操作步驟,非常的簡單易上手,有需要的朋友可以參考下
    2021-08-08
  • 一篇文章教你用Python實現(xiàn)一鍵文件重命名

    一篇文章教你用Python實現(xiàn)一鍵文件重命名

    這篇文章主要介紹了如何用python一鍵文件重命名,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • python實現(xiàn)自動發(fā)送郵件發(fā)送多人、群發(fā)、多附件的示例

    python實現(xiàn)自動發(fā)送郵件發(fā)送多人、群發(fā)、多附件的示例

    下面小編就為大家分享一篇python實現(xiàn)自動發(fā)送郵件發(fā)送多人、群發(fā)、多附件的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • python 中的@運算符使用

    python 中的@運算符使用

    這篇文章主要介紹了python 中的@運算符使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python命令行傳遞參數(shù)的兩種方式

    python命令行傳遞參數(shù)的兩種方式

    python在命令行運行.py文件時,如何在命令行傳遞參數(shù)給運行程序,python默認提供了sys模塊的系統(tǒng)參數(shù)屬性實現(xiàn)接收命令行中的外部參數(shù),本文給大家介紹了python命令行傳遞參數(shù)的兩種方式,需要的朋友可以參考下
    2024-05-05

最新評論

鸡泽县| 思茅市| 泾川县| 吉木乃县| 谢通门县| 思南县| 长岭县| 高邮市| 古蔺县| 嫩江县| 铁岭市| 盐城市| 五原县| 海晏县| 兴宁市| 汝城县| 柘荣县| 沈阳市| 龙里县| 盘山县| 武隆县| 金华市| 靖西县| 阿尔山市| 孝义市| 渝北区| 泗阳县| 南华县| 田林县| 永昌县| 九台市| 武陟县| 潼南县| 安塞县| 淳化县| 彰化市| 临潭县| 会东县| 大渡口区| 河西区| 阿荣旗|