【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

目录
相关文章
|
26天前
|
存储 开发者 Python
Python中的collections模块与UserDict:用户自定义字典详解
【4月更文挑战第2天】在Python中,`collections.UserDict`是用于创建自定义字典行为的基类,它提供了一个可扩展的接口。通过继承`UserDict`,可以轻松添加或修改字典功能,如在`__init__`和`__setitem__`等方法中插入自定义逻辑。使用`UserDict`有助于保持代码可读性和可维护性,而不是直接继承内置的`dict`。例如,可以创建一个`LoggingDict`类,在设置键值对时记录操作。这样,开发者可以根据具体需求定制字典行为,同时保持对字典内部管理的抽象。
|
28天前
|
存储 缓存 算法
Python中collections模块的deque双端队列:深入解析与应用
在Python的`collections`模块中,`deque`(双端队列)是一个线程安全、快速添加和删除元素的双端队列数据类型。它支持从队列的两端添加和弹出元素,提供了比列表更高的效率,特别是在处理大型数据集时。本文将详细解析`deque`的原理、使用方法以及它在各种场景中的应用。
|
2天前
|
人工智能 安全 Java
Python 多线程编程实战:threading 模块的最佳实践
Python 多线程编程实战:threading 模块的最佳实践
13 5
|
2天前
|
人工智能 数据库 开发者
Python中的atexit模块:优雅地处理程序退出
Python中的atexit模块:优雅地处理程序退出
8 3
|
5天前
|
开发者 Python
Python的os模块详解
Python的os模块详解
15 0
|
8天前
|
数据挖掘 API 数据安全/隐私保护
python请求模块requests如何添加代理ip
python请求模块requests如何添加代理ip
|
10天前
|
测试技术 Python
Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘
Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘
|
10天前
|
Serverless 开发者 Python
《Python 简易速速上手小册》第3章:Python 的函数和模块(2024 最新版)
《Python 简易速速上手小册》第3章:Python 的函数和模块(2024 最新版)
40 1
|
12天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
57 0
|
13天前
|
Python
python学习14-模块与包
python学习14-模块与包