`

Python中time模块详解

 
阅读更多

在平常的代码中,我们常常需要与时间打交道。在Python中,与时间处理有关的模块就包括:time,datetime以及calendar。这篇文章,主要讲解time模块。

在开始之前,首先要说明这几点:

  1. 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素。由于Python的time模块实现主要调用C库,所以各个平台可能有所不同。
  2. UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。
  3. 时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。返回时间戳方式的函数主要有time(),clock()等。
  4. 元组(struct_time)方式:struct_time元组共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。下面列出这种方式元组中的几个元素:

 

  索引(Index) 属性(Attribute) 值(Values)
0  tm_year(年)  比如2011 
1  tm_mon(月)  1 - 12
2  tm_mday(日)  1 - 31
3  tm_hour(时)  0 - 23
4  tm_min(分)  0 - 59
5  tm_sec(秒)  0 - 61
6  tm_wday(weekday)  0 - 6(0表示周日)
7  tm_yday(一年中的第几天)  1 - 366
8  tm_isdst(是否是夏令时)  默认为-1

接着介绍time模块中常用的几个函数:

1)time.localtime([secs]):将一个时间戳转换为当前时区的struct_time。secs参数未提供,则以当前时间为准。

>>> time.localtime()
time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, tm_hour=14, tm_min=14, tm_sec=50, tm_wday=3, tm_yday=125, tm_isdst=0)
>>> time.localtime(1304575584.1361799)
time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, tm_hour=14, tm_min=6, tm_sec=24, tm_wday=3, tm_yday=125, tm_isdst=0)

2)time.gmtime([secs]):和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time。

>>>time.gmtime()
time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, tm_hour=6, tm_min=19, tm_sec=48, tm_wday=3, tm_yday=125, tm_isdst=0)

3)time.time():返回当前时间的时间戳。

>>> time.time() 
1304575584.1361799

4)time.mktime(t):将一个struct_time转化为时间戳。

>>> time.mktime(time.localtime())
1304576839.0

5)time.sleep(secs):线程推迟指定的时间运行。单位为秒。

6)time.clock():这个需要注意,在不同的系统上含义不同。在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。(实际上是以WIN32上QueryPerformanceCounter()为基础,它比毫秒表示更为精确)

1
2
3
4
5
6
7
8
import time 
if __name__ == '__main__'
    time.sleep(1
    print "clock1:%s" % time.clock() 
    time.sleep(1
    print "clock2:%s" % time.clock() 
    time.sleep(1
    print "clock3:%s" % time.clock()

运行结果:

clock1:3.35238137808e-006 
clock2:1.00004944763 
clock3:2.00012040636

其中第一个clock()输出的是程序运行时间
第二、三个clock()输出的都是与第一个clock的时间间隔

7)time.asctime([t]):把一个表示时间的元组或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。如果没有参数,将会将time.localtime()作为参数传入。

>>> time.asctime()
'Thu May 5 14:55:43 2011'

8)time.ctime([secs]):把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。

>>> time.ctime()
'Thu May 5 14:58:09 2011'
>>> time.ctime(time.time())
'Thu May 5 14:58:39 2011'
>>> time.ctime(1304579615)
'Thu May 5 15:13:35 2011'

9)time.strftime(format[, t]):把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。如果元组中任何一个元素越界,ValueError的错误将会被抛出。

格式 含义 备注
%a 本地(locale)简化星期名称  
%A 本地完整星期名称  
%b 本地简化月份名称  
%B 本地完整月份名称  
%c 本地相应的日期和时间表示  
%d 一个月中的第几天(01 - 31)  
%H 一天中的第几个小时(24小时制,00 - 23)  
%I 第几个小时(12小时制,01 - 12)  
%j 一年中的第几天(001 - 366)  
%m 月份(01 - 12)  
%M 分钟数(00 - 59)  
%p 本地am或者pm的相应符
%S 秒(01 - 61)
%U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。
%w 一个星期中的第几天(0 - 6,0是星期天)
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始。  
%x 本地相应日期  
%X 本地相应时间  
%y 去掉世纪的年份(00 - 99)  
%Y 完整的年份  
%Z 时区的名字(如果不存在为空字符)  
%% ‘%’字符  

备注

  1. “%p”只有与“%I”配合使用才有效果。
  2. 文档中强调确实是0 - 61,而不是59,闰年秒占两秒(汗一个)。
  3. 当使用strptime()函数时,只有当在这年中的周数和天数被确定的时候%U和%W才会被计算。

举个例子:

>>> time.strftime("%Y-%m-%d %X", time.localtime())
'2011-05-05 16:37:06'

10)time.strptime(string[, format]):把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。

>>> time.strptime('2011-05-05 16:37:06', '%Y-%m-%d %X')
time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, tm_hour=16, tm_min=37, tm_sec=6, tm_wday=3, tm_yday=125, tm_isdst=-1)

在这个函数中,format默认为:"%a %b %d %H:%M:%S %Y"

最后,我们来对time模块进行一个总结。根据之前描述,在Python中共有三种表达方式:1)timestamp 2)tuple或者struct_time 3)格式化字符串。

它们之间的转化如图所示:

<iframe id="iframe_0.7151615062905541" style="border-width: initial; border-style: none; width: 794px; height: 1123px;" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://qinxuye.me/static/uploads/time.jpg?_=2975786%22%20style=%22border:none;max-width:1571px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.7151615062905541',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no"></iframe>

分享到:
评论

相关推荐

    Python中time模块详解.pdf

    Python 中 time 模块详解 Python 中的 time 模块提供了处理时间相关的功能,包括时间戳、格式化的时间字符串和元组(struct_time)。在 Python 中,时间可以用三种方式表示:时间戳、格式化的时间字符串和元组...

    Python日期时间Time模块实例详解

    ### Python日期时间Time模块详解 #### 一、概述 Python 中处理日期和时间的主要模块有两个:`time` 和 `calendar`。本篇文章将重点介绍 `time` 模块的使用方法,包括各种与时间相关的常见操作及技巧。通过具体的...

    python模块详解

    python模块详解 各个模块的详解 核心模块 1.1. 介绍 1.2. _ _builtin_ _ 模块 1.3. exceptions 模块 1.4. os 模块 1.5. os.path 模块 1.6. stat 模块 1.7. string 模块 1.8. re 模块 1.9. math 模块 1.10....

    Python的time模块-各种与时间相关的函数.docx

    ### Python的time模块详解 #### 引言 Python的`time`模块是处理时间相关任务的强大工具之一。它提供了一系列的函数,可以帮助我们获取当前时间、格式化时间、暂停程序执行以及进行各种时间操作。本篇文章将详细...

    详解python:time模块用法

    time模块下有两种时间表示方法: 第1种是:时间戳的方式。是基于1970年1月1日0时0分0秒的偏移。浮点数。 第2种是:struct_time()类型的表示方法。gmtime()和localtime()可以将时间戳显示为struct_time()类型。 第3种...

    详解Python编程中time模块的使用

    Python编程中的time模块是处理时间相关操作的核心工具,它提供了丰富的函数来帮助开发者进行时间的获取、转换和操作。在本文中,我们将深入探讨time模块的主要功能和使用方法。 一、时间表示方式 1. 时间戳...

    举例详解Python中threading模块的几个常用方法

    ### Python中threading模块的关键知识点详解 #### 一、引言 在现代软件开发中,多线程编程是一项重要的技术,能够显著提升程序的运行效率和响应能力。Python中的`threading`模块提供了丰富的功能来支持多线程编程。...

    Python3.5内置模块之time与datetime模块用法实例分析

    #### 一、`time` 模块详解 **1.1 时间的基本表示** 在Python中,时间有多种表示方法: - **时间戳**:这是从1970年1月1日00:00:00 UTC起至当前时间的总秒数。可以通过`time.time()`函数获取当前时间戳。 - **格式...

    Python time模块详解(常用函数实例讲解,非常好)

    由于Python的time模块实现主要调用C库,所以各个平台可能有所不同。2.UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。3....

    Python中time模块和datetime模块的用法示例

    ### Python中time模块和datetime模块的用法详解 在Python编程中,处理时间和日期是非常常见的需求之一。Python提供了两个强大的内置模块——`time`模块和`datetime`模块,来帮助开发者进行时间日期的操作。本文将...

    详解python时间模块中的datetime模块

    time模块我在之前的文章已经有所介绍,它提供的接口与C标准库time.h基本一致。相比于time模块,datetime模块的接口则更直观、更容易调用。 1、datetime中包含三个类date ,time,datetime 函数datetime.combine(date,...

    python--time模块和datetime模块.docx

    ### Python中的Time模块与Datetime模块详解 在Python中,处理日期和时间是非常常见的需求之一,尤其是在数据处理、日志分析等场景下尤为重要。Python提供了两个非常实用的模块来帮助我们处理时间和日期:`time`模块...

    python模块常用用法实例详解

    以上就是Python `time`、`random`和`os`模块的一些常见用法和实例,它们在日常编程中扮演着重要角色,帮助我们处理时间、生成随机数以及与操作系统进行交互。理解并熟练运用这些模块,将极大地提升我们的编程效率。

    python time模块用法实例详解

    本文详细讲述了python的内嵌time模块的用法。分享给大家供大家参考之用。具体分析如下:   一、简介 time模块提供各种操作时间的函数 说明:一般有两种表示时间的方式: 第一种是时间戳的方式(相对于1970.1.1 00:00:...

    python time学习资料

    "Python time模块详解" Python time模块是 Python 中的一个内置模块,用于处理时间相关的操作。在 Python 中,时间可以被表示为一个元组,包含年、月、日、小时、分钟、秒和微秒等信息。本文将详细介绍 Python time...

Global site tag (gtag.js) - Google Analytics