点击蓝字
关注我们
datetime库提供用于处理日期和时间的类,常用的类有:
类名 | 功能说明 |
date | 日期对象,有属性year,month和day |
time | 时间对象,有属性hour, minute, second, microsecond 和 tzinfo |
datetime | 时间和时间的结合,有属性year, month, day, hour, minute, second, microsecond, and tzinfo |
timedelta | 表示两个日期或时间之间的间隔,精确到微秒 |
tzinfo | 描述时区信息对象的抽象基类 |
timezone | 一个实现tzinfo抽象基类的子类,用于表示相对于世界标准时间(UTC)的偏移量 |
下面先介绍date类的用法。
讲date类之前先明确一下python中表示年份的最大值和最小值,分别用MAXYEAR和MINYEAR来表示,这两个值是常量,所以用大写来表示,见代码:
import datetimeprint(datetime.MAXYEAR)print(datetime.MINYEAR)
9999
1
可见年份的最大值是9999,最小值是1。
使用这个库之前务必使用import datetime导入。
date对象由year,month和day这三部分构成,定义一个日期时可写成如下形式:
a=datetime.date(2021,10,22)print(a)print(a.year)print(a.month)print(a.day)
2021-10-22
2021
10
22
赋值时直接把年、月、日作为date()的参数即可,注意年月日的值不能超过其表示范围,否则会报错,比如datetime.date(2021,13,22)会引发ValueError错误,因为没有13这个月份。
通过这个例子,我们知道date对象可以直接赋值给一个变量的,所以我一直认为可以把日期(时间)型理解为python的一种数据类型,但参考了很多文献与资料,讲解数据类型时一般只提数值型、字符串类型以及列表、字典、元组、集合等,没有把日期时间作为一种数据类型来进行讲解,包括官方文档,在此不敢自作自张,标新立异。只是觉得如果放在数据类型的章节来介绍的话,可以提前学会使用Python来处理与日期时间相关的程序。
若要获取系统的当前日期使用datetime.date.today(),比如:
print(datetime.date.today()
2021-10-21
不同的日期还可以进行比较,一般认为往后的日期比往前的日期大,比如:
a=datetime.date(2021,10,22)b=datetime.date(2021,10,23)print(a==b,a<b,a>b,a!=b)
False True False True
如果想知道两个日期之间相差多少天,还可以用减法,某个日期往后几天或往前几天,同样可以用这个日期加上或减去天数:
a=datetime.date(2021,10,22)b=datetime.date(2021,9,23)print(b-a) #相差的天数print(a-b) #相差的天数print(a+datetime.timedelta(days=3)) #往后3天print(b-datetime.timedelta(days=5)) #往前5天
-29 days, 0:00:00
29 days, 0:00:00
2021-10-25
2021-09-18
后面的日期减前面的日期,结果是正数,前面的日期减后面的日期结果是负数,表示天数使用datetime.timedelta(days=n)的形式来表达,后面还要再详细介绍timedelta()的用法。
如果想知道某个日期是星期几,使用date.isoweekday()的形式来获得,比如:
a=datetime.date(2021,10,24)b=datetime.date.today() #2021-10-21print(a.isoweekday(),b.isoweekday())
7 4
isoweekday()返回一个整数,1表示星期一,7表示星期日。
datetime库很庞大,这一节只介绍date类常用的一些方法,余下的内容且听后面几节慢慢分解。




