【Python】一文了解Time模块、Datatime模块、Calendar模块。

简介: 【Python】一文了解时间处理模块

前言
在 Python 的时间处理中,一般可以使用以下三件套来处理时、分、秒、日期、时间戳等时间相关的操作:

time 模块:提供了基于 C 标准库的时间处理函数,包括时间的获取与转换、程序计时等功能。
datetime 模块:提供了对时间日期的各种操作功能,包括时间格式化、时区切换等。
calendar 模块:提供了一些与日历相关的函数,比如获取月份的日历、某年是否为闰年等。
time模块是Python标准库中最基础、最常用的模块之一。它提供了各种处理时间的方法和函数,如获取当前时间、格式化时间、计算时间差等。time模块大部分函数的底层实现是 C 语言库的时间处理函数。

    datetime模块是对time模块的补充和扩展,它提供了更加丰富和灵活的时间处理功能,支持更多的时间格式和时间操作,并且功能更加强大。datetime模块提供了日期(date)、时间(time)、日期时间(datetime)等类型的操作。它也是基于C语言的时间库实现的。

    calendar模块提供了一些与日历相关的函数和类。它包含可打印的日历类,可以格式化周和月的天数,并将日历信息转换为不同的格式。基本上,calendar模块提供了一种将日期转换为特定格式的工具。它是纯Python的实现。

详细介绍
time模块

time模块是Python中处理时间的基础模块。 time模块提供了实现时间相关操作的函数,例如获取当前时间、延迟执行、获取时间戳等等。 time模块的函数可以分为3类:

a. 获取时间相关函数

time():获取当前的时间戳(从Unix纪元开始的秒数),返回一个浮点型数值。

ctime():将时间戳转换为可读的字符串形式,如“Sat Jun 15 16:21:31 2023”。

gmtime():获取当前的时间,并将时间戳转换为UTC时区的时间。

localtime():获取当前的时间,并将时间戳转换为本地时区的时间。
b. 格式化时间相关函数

strftime(format, time):将时间元组(struct_time对象)格式化为字符串,可以指定格式。 strptime(date_string, format):将字符串解析为时间元组,可以指定格式。

c. 延迟执行相关函数

sleep(s):使程序暂停指定的秒数。
例如:

import time
#获取当前时间
now = time.time()
print(now)

#将时间戳转换为可读字符串
time_str = time.ctime(now)
print(time_str)

#获取UTC时间
utc_time_tuple = time.gmtime(now)
print(utc_time_tuple)

#获取本地时间
local_time_tuple = time.localtime(now)
print(local_time_tuple)

#格式化时间
format_time = time.strftime(%Y-%m-%d %H:%M:%S”, local_time_tuple)
print(format_time)

#将时间字符串解析为时间元组
time_tuple = time.strptime(format_time,%Y-%m-%d %H:%M:%S”)
print(time_tuple)

#延迟执行
time.sleep(1)

datatime模块
datetime模块是Python中处理日期和时间的高级模块。 datetime模块是在time模块的基础上开发的,可以提供更精确和高效的时间处理功能。 datetime模块的主要类有3个:

a. date类

    表示一个具体的日期,有3个属性(year、month、day),可以进行日期的加减运算。

b. time类

    表示一天内的时间,有4个属性(hour、minute、second、microsecond),可以进行时间的加减运算。

c. datetime类

    表示一个具体的日期时间,是date类和time类的结合体,具有date类和time类的所有属性和方法。

datetime模块提供了很多函数和方法:
datetime.now():获取当前日期和时间。

datetime.combine(date, time):将date对象和time对象合并成datetime对象。

datetime.strptime(date_string, format):将字符串解析成datetime对象,可以指定格式。

datetime.strftime(date, format):将datetime对象格式化为字符串,可以指定格式。

datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0):表示两个日期或时间之间的时间差。
例如:

import datetime

#获取当前时间
current_time = datetime.datetime.now()
print("当前时间:", current_time)

#获取某一天的日期
date = datetime.date(2023, 4, 25)
print("指定日期:", date)

#获取某一时间的时间戳
timestamp = datetime.datetime.timestamp(current_time)
print("当前时间戳:", timestamp)

#获取某一日期的星期几
weekday = date.weekday()
print("星期几:", weekday)

#将字符串转换为日期
string_date = '2023-04-25'
converted_date = datetime.datetime.strptime(string_date, '%Y-%m-%d')
print("转换后的日期:", converted_date)

#将日期转换为字符串
string_date = converted_date.strftime('%Y/%m/%d')
print("转换后的字符串日期:", string_date)

calendar模块
calendar模块是Python中处理日历相关操作的模块。 calendar模块可以输出各种格式的日历,例如月历、年历等等。calendar模块提供了以下函数:

calendar.calendar(year, w=2, l=1, c=6):返回整个年份的日历文字字符串。

calendar.monthcalendar(year, month):返回一个由月内日期构成的二位数组(可以用来构建月历)。

calendar.monthrange(year, month):返回指定月份的第一天和这一天在一周中的相对位置(例如,星期一为0,星期二为1,以此类推,星期天为6)

calendar.weekday(year, month, day):返回指定日期的星期数(0代表星期一,1代表星期二,以此类推)。

例如:

import calendar
#输出年历
print(calendar.calendar(2021))

#输出9月份日历
print(calendar.monthcalendar(2021, 9))

#输出指定月的第一天和这一天在一周中的相对位置
print(calendar.monthrange(2021, 9))

#输出指定日期的星期数
print(calendar.weekday(2021, 9, 9))

image.png

目录
相关文章
|
2月前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
66 4
|
29天前
|
Python
Python Internet 模块
Python Internet 模块。
121 74
|
2月前
|
算法 数据安全/隐私保护 开发者
马特赛特旋转算法:Python的随机模块背后的力量
马特赛特旋转算法是Python `random`模块的核心,由松本真和西村拓士于1997年提出。它基于线性反馈移位寄存器,具有超长周期和高维均匀性,适用于模拟、密码学等领域。Python中通过设置种子值初始化状态数组,经状态更新和输出提取生成随机数,代码简单高效。
126 63
|
2月前
|
测试技术 Python
手动解决Python模块和包依赖冲突的具体步骤是什么?
需要注意的是,手动解决依赖冲突可能需要一定的时间和经验,并且需要谨慎操作,避免引入新的问题。在实际操作中,还可以结合使用其他方法,如虚拟环境等,来更好地管理和解决依赖冲突😉。
|
8天前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
20 3
|
2月前
|
持续交付 Python
如何在Python中自动解决模块和包的依赖冲突?
完全自动解决所有依赖冲突可能并不总是可行,特别是在复杂的项目中。有时候仍然需要人工干预和判断。自动解决的方法主要是提供辅助和便捷,但不能完全替代人工的分析和决策😉。
|
2月前
|
JSON Linux 数据格式
Python模块:从入门到精通,只需一篇文章!
Python中的模块是将相关代码组织在一起的单元,便于重用和维护。模块可以是Python文件或C/C++扩展,Python标准库中包含大量模块,如os、sys、time等,用于执行各种任务。定义模块只需创建.py文件并编写代码,导入模块使用import语句。此外,Python还支持自定义模块和包,以及虚拟环境来管理项目依赖。
Python模块:从入门到精通,只需一篇文章!
|
2月前
|
Python
Python的模块和包
总之,模块和包是 Python 编程中非常重要的概念,掌握它们可以帮助我们更好地组织和管理代码,提高开发效率和代码质量
52 5
|
2月前
|
数据可视化 Python
如何在Python中解决模块和包的依赖冲突?
解决模块和包的依赖冲突需要综合运用多种方法,并且需要团队成员的共同努力和协作。通过合理的管理和解决冲突,可以提高项目的稳定性和可扩展性
|
2月前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
72 5