当我们在Python中需要使用到时间的时候,有两个关于时间的模块,分别是timedatetime。time模块偏底层,在部分函数运行的时候可能会出现不同的结果,而datetime模块提供了高级API,使用起来更为方便,我们通常在使用的时候会涉及到包含时间和日期的datetime、只包含日期的date以及只包含时间的time,本节我们就对这三种方法进行学习。

1. datetime

datetime的使用方法为:

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()

返回当前的日期和时间。

代码如下:

import datetime
t = datetime.datetime.now()#返回当前日期及时间
print(t)

输出结果为:

2020-02-01 19:18:59.926474

       2) date()

返回当前时间的日期。

代码如下:

import datetime
t = datetime.datetime.now()#返回当前日期及时间
print(t.date())#输出当前的日期

输出结果:

2020-02-01

       3) time()

返回当前的时间对象。

代码如下:

import datetime
t = datetime.datetime.now()#返回当前日期及时间
print(t.time())#输出当前的时间

输出结果为:

19:22:10.948940

       4) utctimetuple()

返回UTC时间元组。

代码如下:

import datetime
t = datetime.datetime.now()#返回当前日期及时间
print(t.utctimetuple())#输出当前的日期

输出结果为:

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对象是日期的专属对象,语法格式如下:

datetime.date(year,month,day),参数分别代表年月日。

date类中的常用功能有2种:

       1) datetime.date.today()

这种用法直接返回了当前的日期,代码如下:

import datetime
t = datetime.date.today()#返回当前日期
print(t)

输出结果为:

2020-02-01

       2) datetime.date.fromtimestamp()

这种方式返回与时间戳对应的日期,代码如下:

import datetime
import time
c = time.time()#返回当前的时间戳
print('当前的时间戳为:',c)
t = datetime.date.fromtimestamp(c)#与时间戳对应的日期
print('当前时间戳对应的日期为:',t)

输出结果为:

当前的时间戳为: 1580556848.3161435
当前时间戳对应的日期为: 2020-02-01

在这个例题中我们先引入了time模块中的方法,time模块中的time.time()能返回当前时间戳,然后我们使用上面的方法可以返回与时间戳对应的日期。

3. time

time类中包含了一整天的信息,语法结构如下:

datetime.time(hour,moniute,second,microsecond,tzinfo=None)

最后一个时区可以省略,看下面例子:

import datetime
t = datetime.time(19,42,34,12)
print(t)

输出结果为:

19:42:34.000012

4. 总结

由于datetime模块中封装了time模块,所以我们使用datetime模块可以保证数据更为精确,在使用过程中也可以穿插着time模块中的部分功能,例如暂停time.sleep()等方法。


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)