个人主页:【😊个人主页】
系列专栏:【❤️Python】
文章目录
- 前言
- 时间元组
- datetime 模块
- datetime类
- 获取当前日期和时间
- timedelta类
- 日期和时间运算
- strftime()方法
- 格式化
- 时间日期格式化符号
- strptime()方法
- Time 模块
- Time 模块内置函数
- Time 模块两个重要属性
- 日历(Calendar)模块
- 打印日历
- 判断是否为闰年
- 日历模块内置函数
前言
试想一下,当我们想为我们的程序添加显示时间的功能或者我们想要实现在程序中获取当前时间,这个时候,时间模块就是我们不可绕开的话题,日期和时间的处理通常也是我们学习一门语言的重难点,但很可惜在大多Python教材中都忽略这一知识点,有些甚至并未提及,事实上,Python 程序能用很多方式处理日期和时间,今天我们就来详细的介绍一下Python中的日期和时间模块。想了解更多Python内容请订阅内容【Python系列教程】
时间元组
时间元组(也称为结构时间)是一个表示时间的元组,它包含了九个元素,分别表示年、月、日、时、分、秒、一周中的第几天、一年中的第几天以及夏令时(通常为-1,表示不是夏令时)。时间元组是由time模块
中的localtime()、gmtime()
等函数返回的,也可以直接使用一个包含九个元素的元组来表示。
我们可以使用time.localtime()
函数获取当前时间的时间元组:
import time
# 获取当前时间的时间元组
current_time_tuple = time.localtime()
print("当前时间的时间元组:", current_time_tuple)
同样的我们可以通过一个包含九个元素的元组来直接创建一个时间元组:
# 创建一个时间元组表示2023年4月1日12时0分0秒
time_tuple = (2023, 4, 1, 12, 0, 0, 5, 91, -1)
print("创建的时间元组:", time_tuple)
datetime 模块
datetime类
datetime类
是datetime库
中最重要的类之一,它表示一个日期和时间的对象。datetime类
包含了年、月、日、时、分、秒等属性,可以通过对象的属性获取具体的日期和时间信息。
- date:表示日期(年、月、日)
- time:表示时间(时、分、秒、微秒)
- datetime:表示日期和时间
- timedelta:表示两个日期或时间之间的差异
获取当前日期和时间
from datetime import datetime
# 获取当前日期和时间
now = datetime.now()
print("当前日期和时间:", now)
from datetime import datetime
cur_datetime = datetime.now()
print("当前日期和时间:", cur_datetime)
print("当前年份:", cur_datetime.year)
print("当前月份:", cur_datetime.month)
print("当前日期:", cur_datetime.day)
print("当前小时:", cur_datetime.hour)
print("当前分钟:", cur_datetime.minute)
print("当前秒数:", cur_datetime.second)
timedelta类
timedelta类
表示两个日期或时间之间的差异,可以用于日期和时间的计算。可以通过timedelta类
的属性和方法进行日期和时间的加减操作。
日期和时间运算
from datetime import datetime, timedelta
# 获取当前日期和时间
now = datetime.now()
print("当前日期和时间:", now)
one_day = timedelta(days=1)
yesterday = now - one_day
tomorrow = now + one_day
# 日期和时间运算
one_week = timedelta(weeks=1)
print("一周后的日期:", now + one_week)
print("昨天的日期和时间:", yesterday)
print("明天的日期和时间:", tomorrow)
strftime()方法
strftime()
方法将datetime
对象转换为指定格式的字符串。可以通过指定格式化字符串来获取不同精度的日期和时间信息。
time.strftime(format[, t])
格式化
import time
# 格式化成2016-03-20 11:45:39形式
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# 格式化成Sat Mar 28 22:24:24 2016形式
print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
# 将格式字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2016"
print(time.mktime(time.strptime(a, "%a %b %d %H:%M:%S %Y")))
时间日期格式化符号
strptime()方法
strptime()
方法将字符串解析为datetime对象
。可以通过指定解析字符串的格式,将字符串转换为datetime对象
from datetime import datetime
date_string = "2024-07-13 12:34:56"
parsed_datetime = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print("解析后的日期和时间:", parsed_datetime)
Time 模块
time模块提供了各种与时间相关的函数。它主要用于底层的时间操作,比如获取当前时间戳、格式化时间和解析时间字符串等。
import time
# 获取当前时间戳
timestamp = time.time()
print("当前时间戳:", timestamp)
# 格式化当前时间
formatted_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
print("格式化后的时间:", formatted_time)
Time 模块内置函数
Time 模块两个重要属性
日历(Calendar)模块
calendar模块提供了处理年历和月历的函数,比如生成一个月的日历、判断某年是否是闰年等。
注:星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()
函数
打印日历
import calendar
cal = calendar.month(2016, 1)
print("以下输出2016年1月份的日历:")
print(cal)
判断是否为闰年
import calendar
# 判断2024年是否是闰年
is_leap = calendar.isleap(2024)
print("2024年是闰年吗?", is_leap)
日历模块内置函数