datetime 模块说白了就是 Python 中用于处理日期和时间的模块。
【 一 】导入模块
import datetime
【 二 】主要类
datetime模块中包含的主要类为:
- date:日期对象,常用的属性有year, month, day等
- time:时间对象,主要的属性有hour, minute, second, microsecond
- datetime:日期时间对象,属性date和属性datetime的组合
- datetime_CAPI:日期对象的C语言接口
- timedelta:两个时间之间的时间间隔
- tzinfo:时区信息对象的抽象基类
【 三 】常量
主要是有两个常量:
- MAXYEAR:返回能表示的最大年份,datetime.MAXYEAR
- MINYEAR:返回能表示最小的年份,datetime.MINYEAR
【 四 】5大类
下面介绍的datetime模块中5大类的具体使用方法:
- date
- time
- datetime
- timedelta
- tzinfo
【 五 】使用方法
【 1 】自定义日期并格式化
方法一
# import datetime
# # res = datetime.date(2023,12,20)
# print(datetime.date(2023,12,20))
# 2023-12-20
方法二
import datetime
from datetime import date
today = date.today
print(today)# <built-in method today of type object at 0x00007FFCA7E88610>
res = datetime.date(2023,12,20)
print(res)
#2023-12-20
【 2 】 通过year、month、day 、weekday、isoweekday5个属性描述符来访问:
import datetime
res = datetime.date(2023, 12, 20)
# 获取年、月、日和星期几
year = res.year
month = res.month
day = res.day
weekday = res.weekday()
# 将星期几转换为具体的名称
weekday_names = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
weekday_name = weekday_names[weekday]
# 打印结果
print("今年", year)# 今年 2023
print('本月', month)# 本月 12
print('今日', day)# 今日 20
print('星期几', weekday_name) #星期几 星期三
print(res) #2023-12-20
import datetime
local_date = datetime.datetime.today()
print(local_date)
print(local_date.year)
print(local_date.month)
print(local_date.day)
print(local_date.weekday())
print(local_date.isoweekday())
# 2023-12-20 16:28:41.882140
# 2023
# 12
# 20
# 2
# 3
【 3 】获取本地时间
获取年月日
import datetime
now_date = datetime.date.today()
print(now_date) #2023-12-20
获取年月日分秒
import datetime
local_date = datetime.datetime.today()
print(local_date)# 2023-12-20 16:23:30.116422
【 六 】timedelta对象
你可以怎么理解timedelta
是 datetime
模块中的一个类,用于表示时间间隔(时间差)。
from datetime import datetime, timedelta
# 获取当前日期和时间
now_day = datetime.now()
# 创建一个 timedelta 对象表示一天的时间间隔
one_day = timedelta(days=1)
# 计算昨天的日期
yesterday = now_day - one_day
# 计算明天的日期
tomorrow = now_day + one_day
# 输出结果
print("当前日期和时间:", now_day)# 当前日期和时间: 2023-12-20 16:46:46.628095
print("昨天的日期:", yesterday)# 昨天的日期: 2023-12-19 16:46:46.628095
print("明天的日期:", tomorrow)# 明天的日期: 2023-12-21 16:46:46.628095
timedelta
对象还支持其他参数,如 hours
、minutes
、seconds
等,以及负数用于表示过去的时间间隔。
from datetime import timedelta
now_day = datetime.now()
now_time = timedelta(hours=2,minutes=30)
new_time = datetime.now() + one_day
print('两个半小时后的时间:' ,new_time)
# 两个半小时后的时间: 2023-12-21 16:57:31.982374
设计一个生日倒计时
import datetime
birthday = datetime.date(2024, 1, 31)
now_date = datetime.date.today()
today = datetime.date.today()
days = birthday - now_date
print('生日:{}'.format(birthday))# 生日:2024-01-31
print('今天的日期:{}'.format(today))# 今天的日期:2023-12-20
print('距离生日还有{}天'.format(days))# 距离生日还有42 days, 0:00:00天