欢迎访问宙启技术站
智能推送

Python日期和时间函数:datetime、time、calendar详解

发布时间:2023-06-26 23:35:01

Python中内置了许多处理日期和时间的函数模块,主要包括datetime、time和calendar三个模块。下面对这三个模块进行详细介绍。

1. datetime 模块

datetime模块主要用于处理日期和时间,包括日期、时间、时间戳以及时间间隔。该模块包含了以下类:

- date:日期类

- time:时间类

- datetime:日期时间类

- timedelta:时间间隔类

- tzinfo:时区信息类

使用 datetime 模块可以快速地获取、操作当前的日期和时间。具体操作方法如下:

# 导入 datetime 模块
import datetime

# 获取当前日期和时间
now = datetime.datetime.now()
print("当前日期和时间是:", now)

# 格式化输出当前日期和时间
print("当前日期和时间格式化输出:", now.strftime("%Y-%m-%d %H:%M:%S"))

# 获取当前日期
today = datetime.date.today()
print("今天是:", today)

# 获取昨天日期
yesterday = today - datetime.timedelta(days=1)
print("昨天日期是:", yesterday)

# 获取明天日期
tomorrow = today + datetime.timedelta(days=1)
print("明天日期是:", tomorrow)

输出结果:

当前日期和时间是: 2021-08-16 14:15:52.195094
当前日期和时间格式化输出: 2021-08-16 14:15:52
今天是: 2021-08-16
昨天日期是: 2021-08-15
明天日期是: 2021-08-17

2. time 模块

time 模块主要用于处理时间相关的问题,包括时间的获取、时间的格式化、时间的休眠等。该模块包含了以下函数:

- time():获取当前的时间戳

- sleep():让程序进入休眠状态

- localtime():获取本地时间

- strftime():格式化时间

使用 time 模块可以获取当前的时间戳或本地时间,对时间进行格式化以及程序进入休眠状态。具体操作方法如下:

# 导入 time 模块
import time

# 获取当前时间戳
timestamp = time.time()
print("当前时间戳是:", timestamp)

# 休眠 3 秒
time.sleep(3)
print("程序休眠了 3 秒")

# 获取本地时间
localtime = time.localtime(time.time())
print("本地时间是:", localtime)

# 格式化时间
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", localtime)
print("格式化后的时间是:", formatted_time)

输出结果:

当前时间戳是: 1629129264.9810662
程序休眠了 3 秒
本地时间是: time.struct_time(tm_year=2021, tm_mon=8, tm_mday=16, tm_hour=14, tm_min=21, tm_sec=8, tm_wday=0, tm_yday=228, tm_isdst=0)
格式化后的时间是: 2021-08-16 14:21:08

3. calendar 模块

calendar 模块主要用于处理日期相关的问题,包括闰年判断、月份天数计算、星期计算等。该模块包含了以下函数:

- isleap():判断是否为闰年

- leapdays():计算指定年份范围内的闰年数

- monthrange():获取指定年份和月份的第一天是星期几以及该月份的总天数

- weekday():获取指定日期的星期几

使用 calendar 模块可以轻松地获取指定年份和月份的一些信息,如一共有多少天、第一天是星期几等。具体操作方法如下:

# 导入 calendar 模块
import calendar

# 判断是否为闰年
year = 2024
if calendar.isleap(year):
    print(f"{year} 是闰年")
else:
    print(f"{year} 不是闰年")

# 计算 1970 年到 2021 年的闰年数
leap_years = calendar.leapdays(1970, 2022)
print(f"1970 年到 2021 年之间的闰年数是:{leap_years}")

# 获取 2021 年 8 月的第一天星期几以及该月份的总天数
first_day, total_days = calendar.monthrange(2021, 8)
print(f"2021 年 8 月份的第一天是星期{first_day + 1},该月份的总天数是:{total_days}")

# 获取 2021 年 8 月 16 日是星期几
weekday = calendar.weekday(2021, 8, 16)
print(f"2021 年 8 月 16 日是星期{weekday + 1}")

输出结果:

2024 是闰年
1970 年到 2021 年之间的闰年数是:17
2021 年 8 月份的第一天是星期1,该月份的总天数是:31
2021 年 8 月 16 日是星期1

总结

以上就是关于 Python 中常用的日期和时间模块 datetime、time、calendar 的详细介绍。在实际开发中,根据需要选择合适的模块进行处理。如果是以日期为主要关键字的数据,可以选择使用 datetime 模块;如果是以时间为主要关键字的数据,可以选择使用 time 模块;如果是为了处理日期和时间的一些问题,可以选择使用 calendar 模块。