热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python中的dateutil模块

Python数据库模块简介每当我们开始处理需要实时数据的脚本时,我们都必须使用dateutil模块,以便

Python 数据库模块简介

每当我们开始处理需要实时数据的脚本时,我们都必须使用 dateutil 模块,以便在特定时间检索或调度数据,或者输入带有检索时间戳的数据。

考虑到我们必须对检索到的数据进行的大量更改,使用大量脚本并尝试在默认日期时间模块的帮助下操作日期和时间格式可能是一项令人生畏的活动。

幸运的是,开发人员创建了 dateutil 模块来提供使生活更轻松的功能。

在下面的教程中,我们将深入了解 Python dateutil 模块。Python 模块是由某些定义和语句组成的文件。我们可以使用这些模块将一个大程序分解成小程序段,然后将它们导入程序中以发挥它们的功能。当我们必须执行与特定日期和时间相关的工作时,Python 编程语言中的 dateutil 模块是这些预定义模块之一。

所以,让我们开始吧。

了解 Python dateutil模块

Python 编程语言中有一个核心模块,称为 datetime 模块。我们使用这个模块从简单的方法到复杂的方法来处理日期和时间。尽管这个模块对于特定数量的实例来说是足够的,Python 日期时间模块为日期时间模块提供了特别强大的扩展。

Python 数据库模块的主要特征

Python 中 dateutil 模块的主要特点如下:


  1. dateutil 模块支持任何字符串格式的日期解析。

  2. 本模块提供内部最新的世界时区详细信息。

  3. 该模块有助于计算相对增量

  4. 这个模块还有助于根据非常灵活的重现规则计算日期。


如何在 Python 中安装 dateutil 模块?

在我们开始使用 dateutil 模块之前,主要目标是在系统上安装该模块。那么,让我们开始安装程序。

我们将使用 pip 安装程序,通过在终端中键入以下命令来安装所需的模块:

语法:


$ pip install python-dateutil

验证安装

为了检查模块是否已经正确安装在系统中,我们可以尝试导入模块并执行程序。

安装完成后,创建一个新的 Python 文件,并在其中键入以下语法。

示例:


# importing the required module
import dateutil

现在,保存该文件并在命令提示符下使用以下命令运行该文件。

语法:


$ python .py

如果程序运行时没有出现任何导入错误,则模块安装正确。否则,建议重新安装该模块,并参考其官方文档。

使用 Python dateutil模块

现在,让我们继续使用 Python 编程语言中的 dateutil 模块。

dateutil 模块及其子类

日期模块分为几个子类,如下所示:


  1. 复活节,

  2. 解析器,

  3. 相对而言,

  4. 统治者!统治者

  5. tz、
    以及更多。

这个模块不包含这么多子类;然而,在本教程中,我们将只探索其中一些函数。

导入必要的模块

既然我们已经正确安装了模块,现在是时候将方法付诸行动并检索输出了。

为了开始使用 Python dateutil 模块和一些模块,我们只需要先导入它们。

以下语法显示了所需模块的导入。

示例:


# importing methods from the datetime module as a base.
import datetime
# importing several methods from the dateutil subclasses.
from dateutil.relativedelta import *
from dateutil.easter import *
from dateutil.parser import *
from dateutil.rrule import *

说明:

在上面的代码片段中,我们已经导入了 datetime 模块来导入方法。然后我们从 dateutil 子类中导入了一些方法。

日期时间功能

在我们进入 dateutil 模块的编码部分之前,我们必须了解该模块依赖于 datetime 模块。

Python dateutil 模块与日期时间对象一起工作,这意味着我们必须在开始使用日期时间对象之前创建它们。

因此,有必要导入日期时间模块。现在,让我们开始使用 dateutil 模块中的一些方法。

Datetime 和 relativedelta

relativedelta 子类扩展了 datetime 模块,为程序员提供了处理与检索到的详细信息相关的日期和时间的功能。

这个语句表示我们可以在当前使用的日期时间对象中插入日、月甚至年。它还使程序员能够使用时间间隔和日期时间对象进行工作。

让我们考虑下面的例子来正确理解这个概念。

示例:


# importing methods from the datetime module as a base.
import datetime
# importing several methods from the dateutil subclasses.
from dateutil.relativedelta import *
from dateutil.easter import *
from dateutil.parser import *
from dateutil.rrule import *
# Creating some datetime objects
present_datetime = datetime.datetime.now()
print("The Present datetime:", present_datetime)
present_date = datetime.date.today()
print("The Present date:", present_date)

输出:

The Present datetime: 2021-10-20 12:38:19.319256
The Present date: 2021-10-20

说明:

在上面的代码片段中,我们已经导入了所需的模块,并创建了日期时间模块的对象来检索当前日期和时间的详细信息。然后,我们为用户打印了这些详细信息。

现在,让我们借助相对日期来获取信息。

示例:


# importing methods from the datetime module as a base.
import datetime
# importing several methods from the dateutil subclasses.
from dateutil.relativedelta import *
from dateutil.easter import *
from dateutil.parser import *
from dateutil.rrule import *
# Creating some datetime objects
present_datetime = datetime.datetime.now()
present_date = datetime.date.today()
# Next month
print("Next month:", present_datetime + relativedelta(mOnths=+ 1))
# Next month, and a week
print("Next month, and a week:", present_datetime + relativedelta(mOnths=+ 1, weeks =+ 1))
# Next month, and a week, at 4 PM
print("Next month, plus one week, at 4 PM:", present_datetime + relativedelta(mOnths=+ 1, weeks =+ 1, hour = 16))
# Next Friday
print("Next Friday:", present_date + relativedelta(weekday = FR))

输出:

Next month: 2021-11-20 12:54:38.805725
Next month, and a week: 2021-11-27 12:54:38.805725
Next month, plus one week, at 4 PM: 2021-11-27 16:54:38.805725
Next Friday: 2021-10-22

说明:

在上面的代码片段中,我们已经导入了所需的模块,并使用当前日期和时间的值来查找相对增量的信息,如下个月的日期和时间、一个月和一周、一个月和一周的下午 4 点以及即将到来的星期五的日期。

这个模块更适用的用途是在一些小操作的帮助下找出信息。

让我们考虑下面的例子来理解同样的事情。

示例:


# importing methods from the datetime module as a base.
import datetime
# importing several methods from the dateutil subclasses.
from dateutil.relativedelta import *
from dateutil.easter import *
from dateutil.parser import *
from dateutil.rrule import *
# Creating some datetime objects
present_datetime = datetime.datetime.now()
present_date = datetime.date.today()
# Finding out the last Monday in the month
print("Last Monday:",present_date + relativedelta(day = 31, weekday = MO(-1)))
# We can also work with datetime objects directly
# Example: Age of David
david_birthday = datetime.datetime(1983, 5, 23, 12, 0)
print("David's Age:", relativedelta(present_datetime, david_birthday).years)

输出:

Last Monday: 2021-10-25
David's Age: 38

说明:

在上面的代码片段中,我们已经导入了所需的模块。然后,我们使用当前日期和时间的值,以便根据某人的生日找到有关该月最后一天或其年龄的信息。

日期时间和复活节

复活节子类用于使用通用复活节日历估计日期和时间,允许程序员计算与各种日历相关的日期时间对象。

子类非常小,只有一个参数和三个定义整个模块的选项。

儒略历,复活节= 1

公历,复活节 _ 东正教= 2

西历复活节 _ 西历= 3

让我们考虑下面的例子来理解上面提到的日历的工作。

示例:


# importing methods from the datetime module as a base.
import datetime
# importing several methods from the dateutil subclasses.
from dateutil.relativedelta import *
from dateutil.easter import *
from dateutil.parser import *
from dateutil.rrule import *
# The Julian Calendar
print("Julian Calendar:", easter(1335, 1))
# The Gregorian Calendar
print("Gregorian Calendar:", easter(1335, 2))
# The Western Calendar
print("Western Calendar:", easter(1335, 3))

输出:

Julian Calendar: 1335-04-16
Gregorian Calendar: 1335-04-26
Western Calendar: 1335-04-17

说明:

在上面的代码片段中,我们已经导入了所需的模块,并使用复活节子类以不同的日历格式打印日期。

日期时间和解析器

解析器子类用作高级日期和时间字符串解析器。这个子类能够解析一个以上描述日期或时间的已知格式。

让我们考虑下面的例子来理解同样的事情。

示例:


# importing methods from the datetime module as a base.
import datetime
# importing several methods from the dateutil subclasses.
from dateutil.relativedelta import *
from dateutil.easter import *
from dateutil.parser import *
from dateutil.rrule import *
# The parser subclass
print(parse("Thu Oct 25 11:36:28 BRST 2005"))
# We can also ignore the timezone which is set to default locally
print(parse("Thu Oct 25 11:36:28 BRST 2005", ignoretz = True))
# We can also not provide a timezone, or a year
# This allows for it to return the current year, with no timezone inclusion.
print(parse("Thu Oct 25 11:36:28"))
# We can also provide variables which consist of the information, as values.
DEFAULT = datetime.datetime(2021, 10, 23)
print(parse("11:36", default = DEFAULT))

输出:

2005-10-25 11:36:28
2005-10-25 11:36:28
2021-10-25 11:36:28
2021-10-23 11:36:00

说明:

在上面的代码片段中,我们再次导入了所需的模块,并使用解析器子类来解析日期和时间字符串。

我们可以提供许多选择,包括时区、本地或明确的。

我们可以使用传递到函数中的变量作为默认参数来提取详细信息,以便提供时区、年份和时间。

日期时间和规则

rrule 子类用于分别收集关于日期时间对象和日期时间对象的重现的信息。

让我们考虑下面的例子来理解同样的事情。

示例:


# importing methods from the datetime module as a base.
import datetime
# importing several methods from the dateutil subclasses.
from dateutil.relativedelta import *
from dateutil.easter import *
from dateutil.parser import *
from dateutil.rrule import *
# The rrule subclass
# Daily repetition for 15 occurrences
print(list(rrule(DAILY, count = 15, dtstart = parse("20210925T091000"))))
# Repeating based on the interval
print(list(rrule(DAILY, interval = 8, count = 4, dtstart = parse("20210925T091000"))))
# Weekly repetition
print(list(rrule(WEEKLY, count = 5, dtstart = parse("20210925T091000"))))
# Monthly repetition
print(list(rrule(MONTHLY, count = 5, dtstart = parse("20210925T091000"))))
# Yearly repetition
print(list(rrule(YEARLY, count = 5, dtstart = parse("20210925T091000"))))

输出:

[datetime.datetime(2021, 9, 25, 9, 10), datetime.datetime(2021, 9, 26, 9, 10), datetime.datetime(2021, 9, 27, 9, 10), datetime.datetime(2021, 9, 28, 9, 10), datetime.datetime(2021, 9, 29, 9, 10), datetime.datetime(2021, 9, 30, 9, 10), datetime.datetime(2021, 10, 1, 9, 10), datetime.datetime(2021, 10, 2, 9, 10), datetime.datetime(2021, 10, 3, 9, 10), datetime.datetime(2021, 10, 4, 9, 10), datetime.datetime(2021, 10, 5, 9, 10), datetime.datetime(2021, 10, 6, 9, 10), datetime.datetime(2021, 10, 7, 9, 10), datetime.datetime(2021, 10, 8, 9, 10), datetime.datetime(2021, 10, 9, 9, 10)]
[datetime.datetime(2021, 9, 25, 9, 10), datetime.datetime(2021, 10, 3, 9, 10), datetime.datetime(2021, 10, 11, 9, 10), datetime.datetime(2021, 10, 19, 9, 10)]
[datetime.datetime(2021, 9, 25, 9, 10), datetime.datetime(2021, 10, 2, 9, 10), datetime.datetime(2021, 10, 9, 9, 10), datetime.datetime(2021, 10, 16, 9, 10), datetime.datetime(2021, 10, 23, 9, 10)]
[datetime.datetime(2021, 9, 25, 9, 10), datetime.datetime(2021, 10, 25, 9, 10), datetime.datetime(2021, 11, 25, 9, 10), datetime.datetime(2021, 12, 25, 9, 10), datetime.datetime(2022, 1, 25, 9, 10)]
[datetime.datetime(2021, 9, 25, 9, 10), datetime.datetime(2022, 9, 25, 9, 10), datetime.datetime(2023, 9, 25, 9, 10), datetime.datetime(2024, 9, 25, 9, 10), datetime.datetime(2025, 9, 25, 9, 10)]

说明:

在上面的代码片段中,我们再次导入了所需的模块。然后,我们使用 rrule 子类来收集关于日期时间对象的重现的信息。

dateutil 模块的一大功能是,这个子类可以让程序员处理多个调度任务和日历存储创新。



推荐阅读
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • 本文介绍了Python函数的定义与调用的方法,以及函数的作用,包括增强代码的可读性和重用性。文章详细解释了函数的定义与调用的语法和规则,以及函数的参数和返回值的用法。同时,还介绍了函数返回值的多种情况和多个值的返回方式。通过学习本文,读者可以更好地理解和使用Python函数,提高代码的可读性和重用性。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
author-avatar
mobiledu2502897273
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有