iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python最好的日期处理库pendulum的使用指南
  • 435
分享到

Python最好的日期处理库pendulum的使用指南

2024-04-02 19:04:59 435人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

关于日期处理,python 提供了很多的库,比如标准库 datetime、第三方库 dateutil、arrow 等等。这里介绍一个我个人最喜欢的库 pendulum,用起来可以说非

关于日期处理,python 提供了很多的库,比如标准库 datetime、第三方库 dateutil、arrow 等等。这里介绍一个我个人最喜欢的库 pendulum,用起来可以说非常的方便,任何对日期的操作它都能满足。

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

下面来看一下用法,首先是 datetime, date, time 的创建。

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
"""
# 创建的对象是 DateTime 类型
# 并且带有时区,默认是 UTC
# 我们可以换一个时区
dt = pendulum.datetime(
    2022, 3, 28, 20, 10, 30, tz="Asia/Shanghai")
print(dt)
"""
2022-03-28T20:10:30+08:00
"""

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

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

# time 的创建
t = pendulum.time(20, 10, 30)
print(t.__class__)
print(t)
"""
<class 'pendulum.time.Time'>
20:10:30
"""

如果创建 datetime 时,时区默认是 UTC。如果不想要时区,或者希望时区是本地时区,那么 pendulum 还专门提供了两个方法。

import pendulum

# 创建 datetime 时设置为本地时区
# 还是调用了 pendulum.datetime 函数
# 但是 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')
"""

# 创建 datetime 时不设置时区
# 内部也是调用了 pendulum.datetime 函数
# 但是 tz 为 None
dt = pendulum.naive(2022, 3, 28, 20, 10, 30)
print(dt)
"""
2022-03-28T20:10:30
"""

然后 pendulum 还提供了几个方法,比如创建当前的 datetime,date 等等。

import pendulum

# 创建当前的 datetime
# 默认是本地时区,但时区可以指定
dt = pendulum.now()
print(dt)
"""
2022-05-29T20:40:49.632182+08:00
"""

# 创建当前的 date,但返回的仍是 datetime
# 只不过时分秒均为 0,同样可以指定时区
dt = pendulum.today()
print(dt)
"""
2022-05-29T00:00:00+08:00
"""

# 获取明天对应的 date
# 返回的是 datetime,时分秒为 0
# 时区可以指定,默认是本地时区
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
"""

我们还可以根据时间戳或者字符串来创建:

import pendulum

# 根据时间戳创建
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
"""

# 根据字符串创建
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 的创建我们说完了,然后再来看看它们支持的操作,这也是最核心的部分。

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
# 年月日时分秒、以及时区都可以替换
print(dt.replace(year=9999))
"""
9999-03-28T20:10:30+08:00
"""

# 转成时间戳
print(dt.timestamp())
"""
1648469430.0
"""

# 返回年、月、日、时、分、秒、时区
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 对象可以转成各种格式的日期字符串。

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 也已经帮我们封装好了。

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 的内置模块 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内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python最好的日期处理库pendulum的使用指南

本文链接: https://www.lsjlt.com/news/119537.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python最好的日期处理库pendulum的使用指南
    关于日期处理,Python 提供了很多的库,比如标准库 datetime、第三方库 dateutil、arrow 等等。这里介绍一个我个人最喜欢的库 pendulum,用起来可以说非...
    99+
    2024-04-02
  • Python音频处理库的使用指南
    音频处理是多媒体领域的一个重要分支,除了音乐产业,还是人工智能、人机交互等领域的必备技能。在Python中,音频处理库是比较常用的,它可以帮助我们进行音频采集、处理和分析。本文将会介绍一些常用的Python音频处理库和它们的使用...
    99+
    2024-01-22
    Python音频处理库 音频编码 音频波形处理
  • 最好的Python DateTime 库之 Pendulum 长篇解析
    不过不得不说,datetime模块也有一些限制。 例如,当我们处理时区时,通常会显得短缺。有时,我们不得不引入一些第三方库作为补充。 此外,datetime 模块中的某些方面在其他编...
    99+
    2024-04-02
  • PHP日期处理实用指南:计算星期几的方法
    PHP日期处理实用指南:计算星期几的方法 在日常的开发工作中,经常会遇到需要根据日期计算出对应的星期几的情况。PHP作为一种功能强大且灵活的编程语言,提供了丰富的日期处理函数和方法,可...
    99+
    2024-02-29
    日期处理示例 php计算星期 星期日计算
  • PHP8.0中的日期处理库:Carbon
    PHP语言一直以来都是Web开发领域中最受欢迎的语言之一。由于其易学易用,强大的功能和广泛的支持,PHP开发已经成为网站开发和实现Web应用程序的首选。在Web应用程序开发过程中,日期和时间处理通常是必须考虑的一项基本任务。决定如何处理日期...
    99+
    2023-05-14
    PHP carbon 日期处理
  • Python urllib库的使用指南详解
    目录urlopenRequestUser-Agent添加更多的Header信息添加一个特定的header随机添加/修改User-Agent所谓网页抓取,就是把URL地址中指定的网络资...
    99+
    2024-04-02
  • Python中time库的使用(日期时间)
    time库是python中处理时间的标准库。 计算机时间的表达:time()、ctime()、gmtime(); 提供获取系统时间并格式化输出功能: strftime()、strpt...
    99+
    2023-02-02
    Python time库使用 Python time库
  • PHP时间处理实用指南:解决日期操作难题
    PHP时间处理实用指南:解决日期操作难题 在Web开发中,经常会遇到处理日期和时间的需求。PHP作为一种广泛应用于Web开发的脚本语言,自带了丰富的日期和时间处理函数,能够帮助开发者轻...
    99+
    2024-02-29
    php 日期 时间操作
  • Oracle数据库中修改系统日期的操作指南
    Oracle数据库是一种功能强大的关系型数据库管理系统,它具有许多用于管理数据库的功能和命令。其中,修改系统日期是一个常见但又比较特殊的操作,需要谨慎处理。本文将为您提供在Oracle...
    99+
    2024-03-09
    操作指南 修改系统日期
  • C++使用chrono库处理日期和时间的实现方法
    目录1. 时间间隔 duration 1.1 常用类成员 1.2 类的使用 2. 时间点 time point 3. 时钟 clocks 3.1 system_clock 3.2 s...
    99+
    2024-04-02
  • 最好的阿里云服务器选择与使用指南
    在当今数字化时代,服务器的重要性不言而喻。阿里云作为全球领先的云计算服务提供商,其服务器产品备受用户好评。本文将详细阐述如何选择阿里云服务器,并提供使用指南,帮助您更好地了解和使用阿里云服务器。 一、如何选择阿里云服务器选择阿里云服务器需要...
    99+
    2023-11-04
    最好的 阿里 使用指南
  • PHP时间戳转日期格式的实用指南
    PHP时间戳转日期格式的实用指南 在Web开发中,时间戳经常用来记录特定事件发生的时间。然而,时间戳通常是以秒为单位的数字,不易阅读。因此,将时间戳转换为日期格式是必不可少的操作。PH...
    99+
    2024-03-08
    php 日期 时间戳
  • Python中怎么获取指定月最后一天的日期
    Python中怎么获取指定月最后一天的日期,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Excel完成这个需求① 在单元格中输入EOMONTH()公式② 完成填...
    99+
    2023-06-16
  • 日期格式化的最佳实践:如何在Java中处理日期格式化
    文章目录 前言一、使用format()方法二、使用注解@JsonFormat三、使用消息转换器1.定义用户类2.重写DateSerializer 方法3.定义对象映射器:4.定义消息转换器5....
    99+
    2023-09-17
    java 开发语言
  • 10个用于处理日期和时间的Python库分别是什么呢
    10个用于处理日期和时间的Python库分别是什么呢,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1️⃣arrow更好的 Python 日期时间操作类库。官网2...
    99+
    2023-06-02
  • C++11时间日期库chrono的使用
    目录时钟与时间点clock时间显示运行计时时间间隔durationduration模板duration_castratiochrono是C++11中新加入的时间日期操作库,可以方便地...
    99+
    2024-04-02
  • 利用Python的NumPy库处理大数据和自然语言的完整指南。
    Python作为一种高级编程语言,广泛应用于数据科学和自然语言处理领域。NumPy是Python中最常用的科学计算库之一,它提供了高效的多维数组操作和数学函数,是处理大数据和自然语言的理想工具之一。本文将为您提供一份完整的指南,介绍如何使用...
    99+
    2023-09-13
    自然语言处理 大数据 numy
  • java日志打印的完全使用指南
    目录一、简介二、常用日志框架三、日志级别四、logback简单介绍五、常见问题总结 一、简介 日志打印是java代码开发中不可缺少的重要一步。日志可以排查问题,可以搜集数据...
    99+
    2024-04-02
  • Python处理日期和时间的方法总结
    目录1 简单入门1.1 获取当前时间1.2 获取当前日期1.3 datetime中的类2 datetime中的常用的类2.1  date类2.2 time类 2....
    99+
    2024-04-02
  • Python常用标准库及第三方库3-日期、时间处理模块
    时间处理是编程中一个比较常见的情况,比如转换时间类型:后端接口传参时通常是传递时间戳,前台拿到接口返回值中的时间戳通常需要格式化后再进行展示。在Python中,处理时间的模块有time、datetime。一、time模块1.time模块简介...
    99+
    2023-05-14
    Python 模块 内建库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作