上QQ阅读APP看书,第一时间看更新
2.10 日期和时间
日期和时间并不是Python的基础数据类型,但是一个非常常用且重要的类型。
时间,既简单又复杂。说它简单,是因为每个人在日常生活中每天都会接触到;说它复杂,是因为人类至今未能对它有精确的定义。
对于程序员而言,说它简单,是因为已经有很多成熟的模块帮助我们来处理与时间相关的任务;说它复杂,是因为时间牵涉到时区、语言、计算、精度等方面,非常烦琐。
Python有datetime模块,这个模块有几个细分的类型:
·如果应用场景只关心日期(年、月、日),用Date类型。
·如果应用场景只关心时间(小时、分、秒、毫秒),用Time类型。
·如果应用场景对日期和时间都关心,用Datetime类型。
我们从最简单的任务开始:获取当前时间。
>>> from datetime import datetime >>> current_time = datetime.now() >>> print(current_time) 2019-03-17 09:21:06.553652
从print语句的输出可以容易地看出获取到的“当前时间”的信息,这些信息包括:年、月、日、小时、分、秒、微秒(microsecond)。
我们来看一下获取到的当前时间。
>>> from datetime import datetime >>> current_time = datetime.now() >>> current_time datetime.datetime(2019, 3, 17, 9, 21, 6, 553652)
还可以更直观地看到时间信息的各个构成部分。
>>> current_time.year 2019 >>> current_time.month 3 >>> current_time.day 17 >>> current_time.hour 9 >>> current_time.minute 21 >>> current_time.second 6
如果用type方法来查看其中的类型,我们可以看到year其实就是简单的int类型。
>>> type(current_time) <class 'datetime.datetime'> >>> type(current_time.year) <class 'int'>
如果我们关心的只是日期部分,可以只用日期的部分。
>>> today = datetime.now().date() >>> today datetime.date(2019, 3, 17) >>> today.year 2019 >>> today.hour Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'datetime.date' object has no attribute 'hour'