【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

目录
相关文章
|
10月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
1067 7
|
10月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
834 0
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
761 159
|
10月前
|
JSON 算法 API
Python中的json模块:从基础到进阶的实用指南
本文深入解析Python内置json模块的使用,涵盖序列化与反序列化核心函数、参数配置、中文处理、自定义对象转换及异常处理,并介绍性能优化与第三方库扩展,助你高效实现JSON数据交互。(238字)
758 4
|
11月前
|
安全 大数据 程序员
Python operator模块的methodcaller:一行代码搞定对象方法调用的黑科技
`operator.methodcaller`是Python中处理对象方法调用的高效工具,替代冗长Lambda,提升代码可读性与性能。适用于数据过滤、排序、转换等场景,支持参数传递与链式调用,是函数式编程的隐藏利器。
294 4
|
10月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
840 0
|
10月前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
1307 0
|
11月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
861 0
|
存储 安全 数据处理
Python 内置模块 collections 详解
`collections` 是 Python 内置模块,提供多种高效数据类型,如 `namedtuple`、`deque`、`Counter` 等,帮助开发者优化数据处理流程,提升代码可读性与性能,适用于复杂数据结构管理与高效操作场景。
652 0

推荐镜像

更多