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

Python最好的日期處理庫pendulum的使用指南

 更新時間:2022年07月21日 11:22:28   作者:古明地覺  
關于日期處理,Python?提供了很多的庫,比如標準庫?datetime、第三方庫?dateutil、arrow?等等。本文將為大家介紹一個小編最喜歡的庫?pendulum,用起來可以說非常的方便,任何對日期的操作它都能滿足

關于日期處理,Python 提供了很多的庫,比如標準庫 datetime、第三方庫 dateutil、arrow 等等。這里介紹一個我個人最喜歡的庫 pendulum,用起來可以說非常的方便,任何對日期的操作它都能滿足。

在使用之前需要先安裝,直接 pip install pendulum 即可。

下面來看一下用法,首先是 datetime, date, time 的創(chuàng)建。

import?pendulum

dt?=?pendulum.datetime(
????2022,?3,?28,?20,?10,?30)
print(dt.__class__)
print(dt)
"""
<class?'pendulum.datetime.DateTime'>
2022-03-28T20:10:30+00:00
"""
#?創(chuàng)建的對象是?DateTime?類型
#?并且?guī)в袝r區(qū),默認是?UTC
#?我們可以換一個時區(qū)
dt?=?pendulum.datetime(
????2022,?3,?28,?20,?10,?30,?tz="Asia/Shanghai")
print(dt)
"""
2022-03-28T20:10:30+08:00
"""

#?如果不想要時區(qū),那么指定?tz=None
dt?=?pendulum.datetime(
????2022,?3,?28,?20,?10,?30,?tz=None)
print(dt)
"""
2022-03-28T20:10:30
"""

#?然后是?date?的創(chuàng)建
d?=?pendulum.date(2022,?3,?28)
print(d.__class__)
print(d)
"""
<class?'pendulum.date.Date'>
2022-03-28
"""

#?time?的創(chuàng)建
t?=?pendulum.time(20,?10,?30)
print(t.__class__)
print(t)
"""
<class?'pendulum.time.Time'>
20:10:30
"""

如果創(chuàng)建 datetime 時,時區(qū)默認是 UTC。如果不想要時區(qū),或者希望時區(qū)是本地時區(qū),那么 pendulum 還專門提供了兩個方法。

import?pendulum

#?創(chuàng)建?datetime?時設置為本地時區(qū)
#?還是調(diào)用了?pendulum.datetime?函數(shù)
#?但是?tz?被設置成了?pendulum.local_timezone()
dt?=?pendulum.local(
????2022,?3,?28,?20,?10,?30)
print(dt)
"""
2022-03-28T20:10:30+08:00
"""
print(pendulum.local_timezone())
"""
Timezone('Asia/Shanghai')
"""

#?創(chuàng)建?datetime?時不設置時區(qū)
#?內(nèi)部也是調(diào)用了?pendulum.datetime?函數(shù)
#?但是?tz?為?None
dt?=?pendulum.naive(2022,?3,?28,?20,?10,?30)
print(dt)
"""
2022-03-28T20:10:30
"""

然后 pendulum 還提供了幾個方法,比如創(chuàng)建當前的 datetime,date 等等。

import?pendulum

#?創(chuàng)建當前的?datetime
#?默認是本地時區(qū),但時區(qū)可以指定
dt?=?pendulum.now()
print(dt)
"""
2022-05-29T20:40:49.632182+08:00
"""

#?創(chuàng)建當前的?date,但返回的仍是?datetime
#?只不過時分秒均為?0,同樣可以指定時區(qū)
dt?=?pendulum.today()
print(dt)
"""
2022-05-29T00:00:00+08:00
"""

#?獲取明天對應的?date
#?返回的是?datetime,時分秒為?0
#?時區(qū)可以指定,默認是本地時區(qū)
dt?=?pendulum.tomorrow()
print(dt)
"""
2022-05-30T00:00:00+08:00
"""

#?獲取昨天對應的?date
dt?=?pendulum.yesterday()
print(dt)
"""
2022-05-28T00:00:00+08:00
"""

我們還可以根據(jù)時間戳或者字符串來創(chuàng)建:

import?pendulum

#?根據(jù)時間戳創(chuàng)建
dt1?=?pendulum.from_timestamp(1653828466)
dt2?=?pendulum.from_timestamp(1653828466,
??????????????????????????????tz=pendulum.local_timezone())
print(dt1)
print(dt2)
"""
2022-05-29T12:47:46+00:00
2022-05-29T20:47:46+08:00
"""

#?根據(jù)字符串創(chuàng)建
dt1?=?pendulum.parse("2020-05-03?12:11:33")
dt2?=?pendulum.parse("2020-05-03?12:11:33",
?????????????????????tz=pendulum.local_timezone())
print(dt1)
print(dt2)
"""
2020-05-03T12:11:33+00:00
2020-05-03T12:11:33+08:00
"""

datetime、date、time 的創(chuàng)建我們說完了,然后再來看看它們支持的操作,這也是最核心的部分。

datetime 相關操作

操作非常多,我們逐一介紹。

import?pendulum

dt?=?pendulum.local(
????2022,?3,?28,?20,?10,?30)

#?獲取?date?部分和?time?部分
print(dt.date())
print(dt.time())
"""
2022-03-28
20:10:30
"""

#?替換掉?dt?的某部分,返回新的?datetime
#?年月日時分秒、以及時區(qū)都可以替換
print(dt.replace(year=9999))
"""
9999-03-28T20:10:30+08:00
"""

#?轉(zhuǎn)成時間戳
print(dt.timestamp())
"""
1648469430.0
"""

#?返回年、月、日、時、分、秒、時區(qū)
print(dt.year,?dt.month,?dt.day)
print(dt.hour,?dt.minute,?dt.second)
print(dt.tz)
"""
2022?3?28
20?10?30
Timezone('Asia/Shanghai')
"""

然后是生成字符串,pendulum.DateTime 對象可以轉(zhuǎn)成各種格式的日期字符串。

import?pendulum

dt?=?pendulum.local(
????2022,?3,?28,?20,?10,?30)

#?下面四個最為常用
print("datetime:",?dt.to_datetime_string())
print("date:",?dt.to_date_string())
print("time:",?dt.to_time_string())
print("iso8601:",?dt.to_iso8601_string())
"""
datetime:?2022-03-28?20:10:30
date:?2022-03-28
time:?20:10:30
iso8601:?2022-03-28T20:10:30+08:00
"""
#?當然還支持很多其它格式,不過用的不多
#?隨便挑幾個吧
print("atom:",?dt.to_atom_string())
print("rss:",?dt.to_rss_string())
print("w3c:",?dt.to_w3c_string())
print("cookie:",?dt.to_cookie_string())
print("rfc822:",?dt.to_rfc822_string())
"""
atom:?2022-03-28T20:10:30+08:00
rss:?Mon,?28?Mar?2022?20:10:30?+0800
w3c:?2022-03-28T20:10:30+08:00
rfc822:?Mon,?28?Mar?22?20:10:30?+0800
"""

我們有時也需要判斷當前日期是星期幾、在當前這一年是第幾天等等,pendulum 也已經(jīng)幫我們封裝好了。

import?pendulum

dt?=?pendulum.local(
????2022,?3,?28,?20,?10,?30)

#?返回星期幾
#?注意:星期一到星期天分別對應 1 到 7
print(dt.isoweekday())??#?1

#?返回一年當中的第幾天
#?范圍是?1?到?366
print(dt.day_of_year)??#?87

#?返回一個月當中的第幾天
print(dt.days_in_month)??#?31

#?返回一個月當中的第幾周
print(dt.week_of_month)??#?5

#?返回一年當中的第幾周
print(dt.week_of_year)??#?13

#?是否是閏年
print(dt.is_leap_year())??#?False

最后就是日期的運算,這是 pendulum 最為強大的地方,至于為什么強大,我們演示一下就知道了。

import?pendulum

dt?=?pendulum.local(
????2022,?3,?30,?20,?10,?30)

#?返回下一個月的今天
print(dt.add(months=1))
"""
2022-04-30T20:10:30+08:00
"""

#?返回上一個月的今天
#?但是上一個月是?2?月,并且是平年
#?所以最多?28?天
print(dt.add(months=-1))
"""
2022-02-28T20:10:30+08:00
"""
#?我們看到處理的非常完美
#?該方法的原型如下,年月日時分秒都是支持的,當然還有星期也支持
"""
def?add(
????self,
????years=0,
????months=0,
????weeks=0,
????days=0,
????hours=0,
????minutes=0,
????seconds=0,
????microseconds=0,
):
"""

像 Python 的內(nèi)置模塊 datetime 在將日期相加的時候,最多支持到天,我們無法計算下一周、下一個月、下一年的日期。而 pendulum 則可以很方便地處理,這也是我最喜歡的一點。

當然啦,add 里面的值為正,相當于日期往后退;值為負,相當于日期往前推。

然后是兩個日期還可以做減法:

import?pendulum

dt1?=?pendulum.local(
????2021,?1,?20,?11,?22,?33)

dt2?=?pendulum.local(
????2022,?3,?30,?20,?10,?30)

period =?dt2?-?dt1
#?返回的是?Period?對象
#?相當于?datetime?模塊里面的?timedelta
print(period.__class__)
"""
<class?'pendulum.period.Period'>
"""

#?但是功能方面,Period?要強大很多
#?兩者差了多少年
print(period.in_years())??#?1
#?兩者差了多少個月
print(period.in_months())??#?14
#?兩者差了多少個星期
print(period.in_weeks())??#?62
#?兩者差了多少天
print(period.in_days())??#?434
#?兩者差了多少個小時
print(period.in_hours())??#?10424
#?兩者差了多少分鐘
print(period.in_minutes())??#?625487
#?兩者差了多少秒
print(period.in_seconds())??#?37529277

功能非常強大,Python 的 datetime 模塊里面的 timedelta 最多只能計算兩個日期差了多少天,而這里年月日時分秒均可。

到此這篇關于Python最好的日期處理庫pendulum的使用指南的文章就介紹到這了,更多相關Python日期處理庫pendulum內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python框架django中結(jié)合vue進行前后端分離

    python框架django中結(jié)合vue進行前后端分離

    本篇將基于Python+Django結(jié)合Vue.js前端框架,為大家介紹如何基于這三者的技術棧來實現(xiàn)一個前端后離的Web開發(fā)項目。文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Python實現(xiàn)將Excel內(nèi)容批量導出為PDF文件

    Python實現(xiàn)將Excel內(nèi)容批量導出為PDF文件

    這篇文章主要為大家介紹了如何利用Python實現(xiàn)將Excel表格內(nèi)容批量導出為PDF文件,文中的實現(xiàn)步驟講解詳細,感興趣的小伙伴可以了解一下
    2022-04-04
  • Python實現(xiàn)合并帶有嵌入圖片的單元格

    Python實現(xiàn)合并帶有嵌入圖片的單元格

    這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)合并帶有嵌入圖片的單元格,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-12-12
  • python獲取引用對象的個數(shù)方式

    python獲取引用對象的個數(shù)方式

    今天小編就為大家分享一篇python獲取引用對象的個數(shù)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python庫coala代碼分析和自動化檢查改進工具使用探索

    Python庫coala代碼分析和自動化檢查改進工具使用探索

    Python的coala工具是一個強大的代碼分析和自動化改進工具,它可以幫助開發(fā)人員自動化地檢查代碼并提供改進建議,本文將詳細介紹coala的功能和用法,并提供豐富的示例代碼來幫助大家深入了解它
    2024-01-01
  • python 殺死自身進程的實現(xiàn)方法

    python 殺死自身進程的實現(xiàn)方法

    今天小編就為大家分享一篇python 殺死自身進程的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 在python中l(wèi)ogger setlevel沒有生效的解決

    在python中l(wèi)ogger setlevel沒有生效的解決

    今天小編就為大家分享一篇在python中l(wèi)ogger setlevel沒有生效的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • MySQL最常見的操作語句小結(jié)

    MySQL最常見的操作語句小結(jié)

    這篇文章主要介紹了MySQL最常見的操作語句小結(jié),與表和庫相關的這些語句是學習MySQL中最基礎的知識,需要的朋友可以參考下
    2015-05-05
  • 教你用pyecharts繪制各種圖表案例(效果+代碼)

    教你用pyecharts繪制各種圖表案例(效果+代碼)

    說到pyecharts,相信很多人不會陌生,一個優(yōu)秀的python可視化包,下面這篇文章主要給大家介紹了關于如何用pyecharts繪制各種圖表案例的相關資料,需要的朋友可以參考下
    2022-06-06
  • Python利用pygame模塊制作代碼雨

    Python利用pygame模塊制作代碼雨

    對Python游戲有所了解的朋友都知道,在2D的游戲制作中,經(jīng)常會用到一個模塊pygame,他能幫助我們實現(xiàn)很多方便使用的功能,本文就來用pygame模塊制作代碼雨效果,需要的可以了解一下
    2023-05-05

最新評論

祁东县| 双鸭山市| 曲靖市| 华容县| 海门市| 梁山县| 廉江市| 大冶市| 达州市| 安塞县| 霍邱县| 禹城市| 永新县| 九江市| 牡丹江市| 游戏| 巨鹿县| 嘉峪关市| 叶城县| 黄冈市| 济南市| 日土县| 台湾省| 郎溪县| 西藏| 康乐县| 舒兰市| 贵南县| 南部县| 枣阳市| 武清区| 汕尾市| 常州市| 华池县| 鸡泽县| 威远县| 报价| 丹阳市| 喜德县| 丰原市| 正蓝旗|