datetime标准库

前言:

datetime库是;Python标准库中的一部分。在Python中,datetime库常常用来处理时间和日期。datetime库以类的方式提供多钟时间和日期的表达方式。

datetime库常用的四个类分别是:datetime.date、datetime.time、datetime.datetime、datetime.timedelta。如图,列出了四个类。

类名说明
datetime.date表示日期的类,可以表示年、月、日

datetime.time

表示时间的类,可以表示时、分、秒、毫秒
datetime.datetime表示日期和时间的类,包括年、月、日、时、分、秒、毫秒
datetime.timedelta表示时间间隔,即两个时间点的间隔

一、datetime.date类

date对象由year(年)、month(月)、day(日)三部分构成,代码如下:

date(year,month,day)

date类对象的参数说明:

year:表示年,范围[1,9999]

month:表示月,范围[1,12]

day:表示天,范围有具体的年份和月份确定,比如说闰年2月份有29天。

方法、属性说明
.year返回日期的年份

.month

返回日期的月份
.day返回日期的日
datetime.date.today()获取系统的日期
datetime,date.weekday()返回日期的星期,星期一,返回0;星期二,返回1;....
datetime.date.isoweekday()返回日期的星期,星期一,返回1;星期二,返回2;....
.replace(year,month,day)

生成并返回一个新的日期对象,原时间对象不变

datetime.date类方法/属性的应用

>>>import datetime
>>>#获取当前系统的日期
>>>d1=datetime.date.today()
>>>print(d1)
2024-11-10
>>>#返回日期的年份
>>>d1.year
2024
>>>#返回日期的月份
>>>d1.month
11
>>>#返回日期的日
>>>d1.day
10
>>>#detetime.date.weekday()返回日期的星期,星期一对应0
>>>datetime.date.weekday(d1)
6
>>>#datetime.date.isoweekday()返回日期的星期,星期一对应1,则星期二对应2
>>>d2=datetime.date(2024,11,5)
>>>datetime.date.isoweekday(d2)
2
>>>#生成一个新的日期对象d3,原时间d2对象不变
>>>d3=d2.replace(year=2025)
>>>d3
datetime.date(2025, 11, 5)
>>>d2
datetime.date(2024, 11, 5)

二、datetime.time类

time类有hour(时)、minute(分)、second(秒)、microsecond(毫秒)和tzinfo(时区)五部分组成,代码如下:

time([hour[,minute[,second[,microsecond[,tzinfo]]]]])

time类对象的参数说明:

hour:表示小时,范围[0,23]

minute:表示分钟,范围:[0,59]

second:表示秒,范围:[0,59]

microsecond:表示毫秒,范围:[0,1000000)

tzinfo:表示zinfo的子类对象。

如表所示列出了datetime.date类常用的方法/属性

方法/属性说明
.hour返回时间的小时
.minute返回时间的分钟
.second返回时间的秒
.microsecond返回时间的毫秒
datetime.time.maxtime类所能表示的最大时间:time(23,59,59,999999)
datetime.time.mintime类所能表示的最小时间:time(0,0,0,0)
t.replace(hour[,minute[,second[,microsecond[,tzinfo]]]])生成并返回一个新的时间对象,原时间对象不变
>>>import datetime
>>>#返回time类所能表示的最大时间
>>>datetime.time.max
datetime.time(23, 59, 59, 999999)
>>>#返回time类所能表示的最小时间
>>>datetime.time.min
datetime.time(0, 0)
>>>#生成time类对象的t
>>>t=datetime.time(12,23,45,10000)
>>>print(t)
12:23:45.010000
>>>#返回对象t的小时
>>>t.hour
12
>>>#返回对象t的秒
>>>t.second
45
>>>#生成并返回一个新的时间对象t1,原时间对象不变
>>>t1=t.replace(hour=2,minute=55)
>>>t1
datetime.time(2, 55, 45, 10000)
>>>print(t1)
02:55:45.010000

三、datetime.datetime类

datetime类可以看作是date类和time类的集合,datetime类的大部分方法和属性都继承于date类和time类。

datetime类由year(年)、month(月)、day(日)、hour(时)、minute(分)、second(秒)、microsecond(毫秒)和tzinfo(时区)八部分组成,代码如下:

time(year,month,day[,hour[,minute[,second[,microsecond[,tzinfo]]]]])

下表列出了datetime.datetime类的常用方法和属性,与date类和time类相同的方法/属性不在列举。

方法/属性说明
datetime.datetime.now()返回当前系统的日期时间
datetime.datetime.now().date()返回当前系统的日期时间的日期部分
datetime.datetime.now().time返回当前系统的日期时间的时间部分
datetime.datetime.now().year返回当前系统的日期时间的年份
datetime.datetime.now().month返回当前系统的日期时间的月份
datetime.datetime.now().day返回当前系统的日期时间的日
datetime.datetime.now().hour返回当前系统的日期时间的小时
datetime.datetime.now().minute返回当前系统的日期时间的分钟
datetime.datetime.now().second返回当前系统的日期时间的秒
.strftime()将日期格式转化为字符串格式

strftime()方法实现了时间和日期的格式化,可以将日期转化为字符串格式。

下表列举了strftime()方法的格式符号。

格式化符号表示说明
%Y年份0001-9999,例如:2024
%m月份01-12,例如:11
%B月名January-December,例如:November
%b月名缩写Jan-Dec,例如:Nov
%d日期01-31,例如:10
%A星期Monday-Sunday,例如:Sunday
%a星期缩写Mon-Sun,例如:Sun
%H小时(24h制)00-23,例如:15
%I小时(12h制)01-12,例如:3
%p上/下午AM,PM,例如:PM
%M分钟00-59,例如:00
%S00-59,例如:23

datetime.datetime类方法/属性的应用,代码如下:

>>>import datetime
>>>#返回当前系统的日期时间
>>>datetime.datetime.now()
datetime.datetime(2024, 11, 15, 11, 15, 3, 475472)
>>>print(datetime.datetime.now())
2024-11-15 11:15:28.871037
>>>#返回当前系统的日期
>>>datetime.datetime.now().date()
datetime.date(2024, 11, 15)
>>>#返回当前系统的时间
>>>datetime.datetime.now().time()
datetime.time(11, 16, 46, 228278)
>>>#返回当前系统日期的年份
>>>datetime.datetime.now().year
2024
>>>#返回当前系统日期的月份
>>>datetime.datetime.now().month
11
>>>#返回当前系统日期的小时
>>>datetime.datetime.now().hour
11
>>>#返回当前系统日期的分钟
>>>datetime.datetime.now().minute
19
>>>#返回当前系统日期的秒
>>>datetime.datetime.now().second
59
>>>#返回当前系统日期的毫秒
>>>datetime.datetime.now().microsecond
911968
>>>#格式化输出当前的系统日期时间
>>>today=datetime.datetime.now()
>>>print(today.strftime('今天是%Y年%m月%d日%H点%M分%S秒'))
今天是2024年11月15日11点21分42秒

例:

李华2002年出生,编写程序计算李华的年龄,代码如下:

import datetime
birthdayyear=2002
age=datetime.datetime.now().year-birthdayyear
print("李华的年龄为",age)

四、datetime.timedelta类

datetime.timedelta类用于计算两个datetime.datetime或者datetime.datetime类之间的时间差,能够很方便地解决时间之间的计算问题。

datetime.timedelta类的应用,代码如下:

>>>import datetime
>>>#today是当前系统的日期时间
>>>today=datetime.datetime.now()
>>>print(today)
2024-11-15 11:35:01.054766
>>>#today 日期三天后
>>>d=today+datetime.timedelta(3)
>>>print(d)
2024-11-18 11:35:01.054766
>>>#today 日期三天前
>>>d=today+datetime.timedelta(-3)
>>>print(d)
2024-11-12 11:35:01.054766
>>>#today 时间的三小时后
>>>d=today+datetime.timedelta(hours=3)
>>>print(d)
2024-11-15 14:35:01.054766
>>>#today 时间的三小时前
>>>d=today+datetime.timedelta(hours=-3)
>>>print(d)
2024-11-15 08:35:01.054766

总结:

上面讲解了datetime库不同类的使用方法,它们是处理日期和时间的表达方式,学习和运用这几种类的方法,可以有效地处理日期和时间。

最后,祝大家生活愉快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值