datetime模块_Python教程
当我们在Python中需要使用到时间的时候,有两个关于时间的模块,分别是time和datetime。time模块偏底层,在部分函数运行的时候可能会出现不同的结果,而datetime模块提供了高级API,使用起来更为方便,我们通常在使用的时候会涉及到包含时间和日期的datetime、只包含日期的date以及只包含时间的time,本节我们就对这三种方法进行学习。
1. datetime
datetime的使用方法为:
1 | datetime.dateto,e(year, month, day, hour = 0 , minute = 0 , second = 0 , microsecond = 0 , tzinfo = None , * , fold = 0 ) |
其中year,month和day是不能缺少的,tzinfo为时区参数,可以为None或其他参数,其余参数的范围如下:
MINYEAR <= year <= MAXYEAR,
1 <= month <= 12,
1 <= day <= number of days in the given month and year,
0 <= hour < 24,
0 <= minute < 60,
0 <= second < 60,
0 <= microsecond < 1000000,
fold in [0, 1].
下面讲几种常用的方法:
1) datetime.datetime.now()
返回当前的日期和时间
代码如下:
1 2 3 | import datetime t = datetime.datetime.now() #返回当前日期及时间 print (t) |
输出结果为:
1 | 2020 - 02 - 01 19 : 18 : 59.926474 |
2) date()
返回当前时间的日期
代码如下:
1 2 3 | import datetime t = datetime.datetime.now() #返回当前日期及时间 print (t.date()) #输出当前的日期 |
输出结果:
1 | 2020 - 02 - 01 |
3) time()
返回当前的时间对象
代码如下:
1 2 3 | import datetime t = datetime.datetime.now() #返回当前日期及时间 print (t.time()) #输出当前的时间 |
输出结果为:
1 | 19 : 22 : 10.948940 |
4) utctimetuple()
返回UTC时间元组
代码如下:
1 2 3 | import datetime t = datetime.datetime.now() #返回当前日期及时间 print (t.utctimetuple()) #输出当前的日期 |
输出结果为:
1 2 | time.struct_time(tm_year = 2020 , tm_mon = 2 , tm_mday = 1 , tm_hour = 19 , tm_min = 23 , tm_sec = 29 , tm_wday = 5 , tm_yday = 32 , tm_isdst = 0 ) |
2. date
date对象是日期的专属对象,语法格式如下:
1 | datetime.date(year,month,day),参数分别代表年月日。 |
date类中的常用功能有2种:
1) datetime.date.today()
这种用法直接返回了当前的日期,代码如下:
1 2 3 | import datetime t = datetime.date.today() #返回当前日期 print (t) |
输出结果为:
1 | 2020 - 02 - 01 |
2) datetime.date.fromtimestamp()
这种方式返回与时间戳对应的日期,代码如下:
1 2 3 4 5 6 | import datetime import time c = time.time() #返回当前的时间戳 print ( '当前的时间戳为:' ,c) t = datetime.date.fromtimestamp(c) #与时间戳对应的日期 print ( '当前时间戳对应的日期为:' ,t) |
输出结果为:
1 2 | 当前的时间戳为: 1580556848.3161435 当前时间戳对应的日期为: 2020 - 02 - 01 |
在这个例题中我们先引入了time模块中的方法,time模块中的time.time()能返回当前时间戳,然后我们使用上面的方法可以返回与时间戳对应的日期。
3. time
time类中包含了一整天的信息,语法结构如下:
1 | datetime.time(hour,moniute,second,microsecond,tzinfo = None ) |
最后一个时区可以省略,看下面例子:
1 2 3 | import datetime t = datetime.time( 19 , 42 , 34 , 12 ) print (t) |
输出结果为:
1 | 19 : 42 : 34.000012 |
4. 总结
由于datetime模块中封装了time模块,所以我们使用datetime模块可以保证数据更为精确,在使用过程中也可以穿插着time模块中的部分功能,例如暂停time.sleep()等方法。