pendulum,一个超酷的 Python 库!

22b73c9e8fbd440d8bedf56595ea5a22.jpeg

更多Python学习内容:ipengtao.com

大家好,今天为大家分享一个超酷的 Python 库 - pendulum。

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

日期和时间处理在许多应用程序中都是常见的任务,然而,Python标准库中的datetime模块在某些情况下可能会显得繁琐和不够直观。Pendulum 库,它提供了更简单和更强大的日期和时间处理功能。本文将深入介绍 Pendulum 库的基本概念、安装方法以及详细的示例代码,以帮助大家了解如何使用 Pendulum 来处理日期和时间。

什么是 Pendulum?

Pendulum 是一个 Python 库,旨在提供更直观和功能丰富的日期和时间操作功能。它建立在 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(2022, 1, 1)
end_date = pendulum.datetime(2022, 12, 31)
date_range = pendulum.period(start_date, end_date)

# 计算时差
start_time = pendulum.datetime(2022, 1, 1, 0, 0, 0)
end_time = pendulum.datetime(2022, 1, 1, 12, 0, 0)
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,并在项目中更高效地处理日期和时间。

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

更多Python学习内容:ipengtao.com

干货笔记整理

  100个爬虫常见问题.pdf ,太全了!

Python 自动化运维 100个常见问题.pdf

Python Web 开发常见的100个问题.pdf

124个Python案例,完整源代码!

PYTHON 3.10中文版官方文档

耗时三个月整理的《Python之路2.0.pdf》开放下载

最经典的编程教材《Think Python》开源中文版.PDF下载

3b526c61665b0519246ba4e1bc34769a.png

点击“阅读原文”,获取更多学习内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/285354.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年Mac专用投屏工具AirServer 7 .27 for Mac中文版

AirServer 7 .27 for Mac中文免费激活版是一款Mac专用投屏工具&#xff0c;能够通过本地网络将音频、照片、视频以及支持AirPlay功能的第三方App&#xff0c;从 iOS 设备无线传送到 Mac 电脑的屏幕上&#xff0c;把Mac变成一个AirPlay终端的实用工具。 目前最新的AirServer 7.2…

.net8 AOT编绎-跨平台调用C#类库的新方法-函数导出

VB.NET AOT无法编绎DLL,微软的无能&#xff0c;正是你的机会 .net8 AOT编绎-跨平台调用C#类库的新方法-函数导出 1&#xff0c;C#命令行创建工程&#xff1a;dotnet new classlib -o CSharpDllExport 2&#xff0c;编写一个静态方法&#xff0c;并且为它打上UnmanagedCallersO…

Ubuntu开机自启动文件

开机自启动文件 Ubuntu 系统启动时运行的文件 /etc/rc.local 创建/etc/rc.local文件 sudo touch /etc/rc.local给rc.local添加可执行权限 sudo chmod 777 /etc/rc.local编辑/etc/rc.local文件&#xff0c;将start.py脚本的运行写入 sudo vim /etc/rc.local#!/bin/bash # d…

python多环境管理工具——pyenv-win安装与使用教程

目录 pyenv-win简介 pyenv-win安装 配置环境变量 pyenv的基本命令 pyenv安装py环境 pyenv安装遇到问题 pycharm测试 pyenv-win简介 什么是pyenv-win&#xff1a; 是一个在windows系统上管理python版本的工具。它是pyenv的windows版本&#xff0c;旨在提供类似于unix/li…

基于图论的图像分割 python + PyQt5

数据结构大作业&#xff0c;基于图论中的最小生成树的图像分割。一个很古老的算法&#xff0c;精度远远不如深度学习算法&#xff0c;但是对于代码能力是一个很好的锻炼。 课设要求&#xff1a; &#xff08; 1 &#xff09;输入&#xff1a;图像&#xff08;例如教室场景图&a…

LeetCode74二分搜索优化:二维矩阵中的高效查找策略

题目描述 力扣地址 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&…

rime中州韵 help lua Translator

lua 是 Rime中州韵/小狼毫输入法强大的武器&#xff0c;掌握如何在Rime中州韵/小狼毫中使用lua&#xff0c;你将体验到什么叫 随心所欲。 先看效果 在 rime中州韵 输入效果一览 中的 &#x1f447; help效果 一节中&#xff0c; 我们看到了在Rime中州韵/小狼毫输入法中输入 h…

【LMM 005】LLaVA-Interactive:集图像聊天,分割,生成和编辑三种多模态技能于一体的Demo

论文标题&#xff1a;LLaVA-Interactive: An All-in-One Demo for Image Chat, Segmentation, Generation and Editing 论文作者&#xff1a;Wei-Ge Chen, Irina Spiridonova, Jianwei Yang, Jianfeng Gao, Chunyuan Li 作者单位&#xff1a;Microsoft Research, Redmond 论文原…

职场小白培养项目管理能力的6个小技巧

有很多职场新人会碰到这样一个场景&#xff1a;入职一段时间&#xff0c;领导突然将一个重要项目的其中一个模块分配给你负责&#xff0c;但你之前并没有接触过任何项目。 这时你可能会焦躁无措&#xff0c;不知如何往下规划和开展工作&#xff0c;在推进一段时间后领导开始时…

如何保障集团下达的政策要求有效落地

随着新一轮国企改革的推进&#xff0c;很多国有企业建立了集团化的管控体系。通过集团化经营管理的模式&#xff0c;帮助国有企业凝聚更强的竞争力&#xff0c;集团企业通过资源整合、反向投资、控股、参股等手法创造业务板块之间的协同、互补效应&#xff0c;从而实现战略联动…

图像分割-漫水填充法 floodFill (C#)

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 本文的VB版本请访问&#xff1a;图像分割-漫水填充法 floodFill-CSDN博客 FloodFill方法是一种图像处理算法&#xff0c;它的目的是…

英伟达「摊牌」,朋友变对手

对于曾经拿着英伟达的GPU进行自动驾驶系统开发的初创公司来说&#xff0c;可能未必会想到&#xff1a;某一天&#xff0c;这家全球GPU巨头&#xff0c;曾经的合作伙伴会成为自己的直接竞争对手。 上周&#xff0c;英伟达官方公众号发布招聘消息&#xff0c;公司正在扩大其自动驾…

算法训练营Day34(贪心算法)

1005.K次取反后最大化的数组和 1005. K 次取反后最大化的数组和 - 力扣&#xff08;LeetCode&#xff09; 秒了 class Solution {public int largestSumAfterKNegations(int[] nums, int k) {Arrays.sort(nums);// -4 -3 -2 -1 5//-2 -2 0 2 5int last -1;for(int i 0;i<…

从马尔可夫奖励过程到马尔可夫决策到强化学习【02/2】

一、说明 随着 Open AI 于 2023 年 11 月 6 日发布GPT 代理&#xff0c;我们所有人都对它带来的支持和灵活性着迷。想象一下&#xff0c;有一个个性化的数字助手始终在您身边&#xff0c;根据您的喜好完成日常平凡任务或艰巨任务。但为这些定制代理提供动力的是强化学习&#x…

各大超声波清洗机品牌该如何选?清洁好超声波清洗机推荐

现在越来越多智能家居都将方便快捷作为卖点进行介绍&#xff0c;但确实随着科技变化&#xff0c;现在市面上有非常多的智能家居&#xff0c;像清洗眼镜也不例外&#xff0c;从最开始传统手动清洗眼镜到现在超声波清洗机问世&#xff0c;而市面上也出现了非常多超声波清洗机供大…

【ArcGIS微课1000例】0084:甘肃积石山地震震中100km范围内历史灾害点分布图(2005-2020)

甘肃积石山地震震中100km范围内历史灾害点分布图(2005-2020)。 文章目录 一、成果预览二、实验数据三、符号化四、地图整饰一、成果预览 本实验最终效果图如下所示: 二、实验数据 以下数据可以从本专栏配套的实验数据包中0084.rar中获取。 1. 历史灾害数据。为2005-2020时…

ImageNet的故事:李飞飞自传《我所见的世界》中文节选

李飞飞教授的自传《The Worlds I See》&#xff08;我所见的世界&#xff09;英文版11月出版了&#xff0c; 目前还没看到中文版。 此前对李飞飞教授了解并不多&#xff0c;除了知道她是大名鼎鼎的ImageNet发起人&#xff0c;以及斯坦福SAIL人工智能实验室第一位女性主任。这次…

深度学习中氨基酸序列的编码方法

目录 1. 常规特征编码方法1.1 类别特征1.2 文本特征 2. 基于领域先验知识的编码方法2.1 演化关系2.2 理化性质 3. 基于学习的编码方法3.1 预训练模型3.2 端到端方法 参考 随着AI算法创新和算力提升&#xff0c;叠加生物&#xff08;组学&#xff09;数据&#xff08;指数级&…

深度学习|3.6 激活函数 3.7 为什么需要非线性激活函数

激活函数 主要有sigmoid函数、tanh函数、relu函数和leaky relu函数 tanh函数相比sigmoid函数是具有优势的&#xff0c;因为tanh函数使得输出值的平均值为0&#xff0c;而sigmoid函数使得输出值的平均值为1/2&#xff0c;对下一层来说tanh输出的0更好进行处理。 激活函数tanh…

【机器学习】卷积神经网络(三)

四、理论分析 4.1 反卷积运算 我们可以将过滤器转换为 Toeplitz matrix &#xff0c;将图像转换为向量&#xff0c;然后仅通过一个矩阵乘法进行卷积&#xff0c;而不是使用 for-loops 对图像&#xff08;或任何其他 2D 矩阵&#xff09;执行 2D 卷积。 &#xff08;当然还要对乘…
最新文章