Python 中的 time 模块

写代码时,常常会遇到处理时间和日期的问题。在 Python 中,与时间处理最相关的模块是 time 和 datetime。今天我们介绍下 time 模块的常用功能。

time 模块包含一些函数用于获取时钟时间和处理器的运行时间,还提供了基本解析和字符串格式化工具。它是由底层 C 库提供与时间相关的函数,因此在不同的平台上会有细微的差别。

使用 time 模块前需要先引入模块

import time

time.localtime([seconds])

返回本地时间,类型为时间元组 time.struct_time。默认为当前时间,也可以接受时间戳参数。

所谓时间戳,是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

local = time.localtime()
print(local)
print(time.localtime(1400000000))

输出

time.struct_time(tm_year=2016, tm_mon=10, tm_mday=8, tm_hour=16, tm_min=34, tm_sec=1, tm_wday=5, tm_yday=282, tm_isdst=0)

time.struct_time(tm_year=2014, tm_mon=5, tm_mday=14, tm_hour=0, tm_min=53, tm_sec=20, tm_wday=2, tm_yday=134, tm_isdst=0)

time.gmtime([secs])

与 localtime 类似,但返回的是格林威治天文时间下的时间元组,也就是0时区的时间。

print(time.gmtime())
print(time.gmtime(1400000000))

输出

time.struct_time(tm_year=2016, tm_mon=10, tm_mday=8, tm_hour=8, tm_min=49, tm_sec=31, tm_wday=5, tm_yday=282, tm_isdst=0)

time.struct_time(tm_year=2014, tm_mon=5, tm_mday=13, tm_hour=16, tm_min=53, tm_sec=20, tm_wday=1, tm_yday=133, tm_isdst=0)

time.asctime([tupletime])

接受时间元组并返回一个可读的形式为Weekday Month Day HH:MM:SS Year的字符。

在之前代码的基础上

asc = time.asctime(local)
print(asc)

输出

Sat Oct  8 16:34:01 2016

time.mktime(tupletime)

接受时间元组并返回时间辍。

time.mktime(local)

输出

1475915641.0

time.ctime()

返回当前时间,相当于 time.asctime(time.localtime())。

print(time.ctime())

输出

Sat Oct  8 16:37:37 2016

time.sleep(second)

设定当前线程的休眠时间,走完设定时间后再次启动当前线程。

这个方法常被用来控制程序的延时运行。比如在抓取网页的过程中,增加 sleep 休眠,控制抓取请求的频率不要过高,防止被对方服务器拒绝。

print(time.ctime())
time.sleep(5)
print(time.ctime())

输出

Sat Oct  8 16:45:07 2016

Sat Oct  8 16:45:12 2016

time.time()

返回当前时间的时间戳。

print(time.time())

输出

1475917025.59118

在实际应用中,这个函数也经常被用于查看一个代码片的执行时间。在精度要求不是很高的情况下,可以利用执行代码前后的time.time()之差进行计算。

start = time.time()
c = 0
for i in range(1000000):
    c += i
end = time.time()
print(end-start)

输出

0.151529073715

也可以将代码片放入计算时间的装饰器中进行运行。

def timer(func):
    start = time.time()
    func()
    end = time.time()
    print(end-start)
    return func
   
@timer
def fn():
    c = 0
    for i in range(1000000):
       c += i

fn()

time.clock()

以浮点数计算的秒数返回当前的 CPU 时间。

在不同的系统上含义不同。在UNIX系统上,它返回的是"进程时间",它是用秒表示的浮点数(时间戳)。而在WINDOWS中,第一次调用,返回的是进程运行的实际时间,而第二次之后的调用是自第一次调用以后到现在的运行时间。

start_time = time.clock()
print(start_time)
time.sleep(3)
print(time.clock())

输出

5.701806902607436e-07

3.0820826419892464

time.strftime(fmt[,tupletime])

接收以时间元组,并返回字符串。

my_format = "%Y/%m/%d %H:%M:%S"
my_time = time.localtime()
print(my_time)
print(time.strftime(my_format, my_time))

输出

time.struct_time(tm_year=2016, tm_mon=10, tm_mday=8, tm_hour=17, tm_min=8, tm_sec=7, tm_wday=5, tm_yday=282, tm_isdst=0)

2016/10/08 17:08:07

输出参数中,格式化字符串的含义:

格式化字符串 日期/时间单元 范围
%Y 1900-...
%m 12-Jan
%B 月名 January,...
%b 月名缩写 Jan,...
%d 31-Jan
%A 星期 Sunday,...
%a 星期缩写 Sun,...
%H 时(24时制) 00-23
%I 时(12时制) 12-Jan
%p 上午/下午 AM,PM
%M 00-59
%S 00-59

(0)

相关推荐

  • 利用python定一个闹铃

    表白:你知道我喜欢吃什么吗?痴痴地望着你 讲解对象:利用python定一个闹铃 作者:融水公子 rsgz 大家可以关注一下我的公众号:小雪妃,里面也有很多干货分享给大家. 我也比较喜欢在360DOC创 ...

  • 高手如何在Python中使用collections模块

    来源:AI入门学习 介   绍 Python 3有许多内置的数据结构,包括元组.字典和列表.数据结构为我们提供了一种组织和存储数据的方法.collections模块能够帮助我们高效地填充和操作数据结构 ...

  • 一文搞懂Python中的核心概念:导入,模块,包

    前言 Python作为一个解释器,一个程序,如果不导入任何外部模块或包,就做不了什么.理解Python如何导入模块和包将在几乎所有的场景中都很有帮助. 本文中的所有代码都是在Linux(Ubuntu) ...

  • Python中一行和多行import模块问题

     更新时间:2018年04月01日 11:27:06   作者:Xiphap   我们通过本篇文章给大家分析了为什么Python不建议使用一行import所有模块的原因,有兴趣的朋友学习下. Pyth ...

  • python中“SimpleITK”模块完美快速安装_Expected future的博客-CSDN博客

    Expected future 2020-11-14 15:05:42 23 收藏 分类专栏: 环境搭建集锦 python学习 版权 写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同 ...

  • Python 中的函数装饰器和闭包

    函数装饰器可以被用于增强方法的某些行为,如果想自己实现装饰器,则必须了解闭包的概念. 装饰器的基本概念 装饰器是一个可调用对象,它的参数是另一个函数,称为被装饰函数.装饰器可以修改这个函数再将其返回, ...

  • Python中tuple和list的区别?基础学习!

    想必大家都知道,Python数据类型有很多种,其中有两个对象的写法非常相似,它就是tuple元组和list列表,让人傻傻分不清楚.那么你知道Python中tuple和list有什么区别吗?我们来看看具 ...

  • Python中缩进是什么?入门分享!

    众所周知,Python是一门独特的编程语言,它语法清晰.简单易学,而且Python是通过缩进来识别代码块的,因为一般的语言都是通过{}或者end来作为代码块标记. Python中缩进是什么? 要求严格 ...

  • python中的内置函数

    前言 本人只在csdn写博客 内置函数 介绍 一. 数学运算 abs()求绝对值函数 round() 近似取值 pow()求指数 divmod()求商和余数 max()求最大值和min()求最小值 s ...

  • 【Python核心编程笔记】一、Python中一切皆对象

    Python中一切皆对象 本章节首先对比静态语言以及动态语言,然后介绍 python 中最底层也是面向对象最重要的几个概念-object.type和class之间的关系,以此来引出在python如何做 ...