码迷,mamicode.com
首页 > 其他好文 > 详细

time模块

时间:2015-03-20 18:55:55      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:calendar   处理器   详细信息   字符串   壁挂   

Python 没有包含对应日期和时间的内置类型,不过提供了3个相对应模块,可以采用多种表示管理日期和时间的值

    time       模块由底层C库提供与时间相关的函数,它包含一些函数用于获取时钟时间和处理器运行时间,还提供了基本解析和字符串格式化工具。

datatime   模块为日期、时间、以及日期时间值提供了一个更高层接口。datatime中的类支持算术、比较和时区配置。

calendar   模块可以创建周,月和年的格式化表示,它还可以用来计算重复事件,给定日期是星期几,以及其他给予日历的值


Time---------------------------------时钟时间

作用:管理时钟时间的函数

        time 模块提供了一些用于管理日期和时间的C库函数。由于它绑定到底层C实现,一些(如纪元开始时间和支持的最大日期)会特定于具体的平台。要全面了解有关的详细信息,请参考库文档

1、壁挂钟时间

       time模块的核心函数之一是time(),它会把从纪元开始以来的秒数作为一个浮点值返回。

In [10]: import time
In [11]: print "the time is: %f" % time.time()
the time is: 1426819551.753002

In [12]: print "The time is : ",time.time()
The time is :  1426819590.31

尽管这个值总是一个浮点数,但具体的精度依赖于具体的平台

浮点数表示对于存储或比较日期很有用,但是对于生成人类可读的表示就有些差强人意了,要记录或者打印时间,ctime()可能更有用。

In [13]: import time

In [14]: print "The time is : ",time.ctime()
The time is :  Fri Mar 20 10:50:45 2015

In [15]: later = time.time() + 15

In [16]: print "15 secs from now: ",time.ctime(later)
15 secs from now:  Fri Mar 20 10:51:02 2015                              秒钟加了17秒,命令输入间隔2秒

这个例子中显示了如何使用ctime()来格式化当前时间以外的另一个时间值。

2、处理器时钟时间

       time()返回的是一个壁挂钟时间,而clock()会返回处理器时钟时间。clock()返回的值应当用于性能测试、基准测试等,因为它们反应了程序使用的实际时间,可能比time()返回的值更加精确。

 #!/usr/bin/env python
import hashlib
import time

data = open(‘1.txt‘,‘rt‘).read()              这里需要注意后面的 .read(),这样 data 获取到的才是文件内容中的字符串
h = hashlib.sha1()
for i in range(5):
    print i
    print time.ctime(),‘%0.3f %0.3f‘ % (time.time(), time.clock())    这里需要注意time.time() time.clock() 这2个的数值才是浮点类型,所以前面可以用%0.3f表示精确到小数点后3位
#    print time.ctime()
#    print time.clock()
#    print time.time()
    for i in range(3000000):
        h.update(data)
    cksum = h.digest()

运行结果:

xmb.dev.test.inzwc.com<2015-03-20 11:43:20> ~/dev/python/time
www>$ python clock.py
0
Fri Mar 20 11:43:22 2015 1426823002.019 0.010
1
Fri Mar 20 11:43:24 2015 1426823004.029 2.010
2
Fri Mar 20 11:43:26 2015 1426823006.016 4.000
3
Fri Mar 20 11:43:28 2015 1426823008.014 6.000
4
Fri Mar 20 11:43:30 2015 1426823010.024 8.000

3、时间组成

      有些情况下需要将时间存储为过去了多少秒(秒数),但是还有一些情况,程序需要访问一个日期的各个字段(年,月等)。time 模块定义了 struct_time来维护日期和时间值,其中分开存储各个组成部分,以便于访问。很多函数都要处理struct_time值而不是浮点数值。

xmb.dev.test.inzwc.com<2015-03-20 14:12:56> ~/dev/python/time
www>$ vim struct.py
#!/usr/bin/env python
import time
def show_struct(s):
    print ‘tm_year: ‘,s.tm_year
    print ‘tm_mon: ‘,s.tm_mon
    print ‘tm_mday: ‘,s.tm_mday
    print ‘tm_hour: ‘,s.tm_hour
    print ‘tm_min: ‘,s.tm_min
    print ‘tm_sec: ‘,s.tm_sec
    print ‘tm_wday: ‘,s.tm_wday
    print ‘tm_yday: ‘,s.tm_yday
    print ‘tm_isdst: ‘,s.tm_isdst
print ‘gmtime:‘
show_struct(time.gmtime())
print ‘\nlocaltime:‘
show_struct(time.localtime())
print ‘\nmktime: ‘,time.mktime(time.localtime())

运行结果:

www>$ python struct.py 
gmtime:
tm_year:  2015
tm_mon:  3
tm_mday:  20
tm_hour:  6
tm_min:  13
tm_sec:  50
tm_wday:  4
tm_yday:  79
tm_isdst:  0
localtime:
tm_year:  2015
tm_mon:  3
tm_mday:  20
tm_hour:  14
tm_min:  13
tm_sec:  50
tm_wday:  4
tm_yday:  79
tm_isdst:  0
mktime:  1426832030.0

gmtime()函数以UTC格式返回当前时间,localtime()会返回应用了当前时区的当前时间。mktime()取一个struct_time实例,将它转换为浮点数表示。


time模块

标签:calendar   处理器   详细信息   字符串   壁挂   

原文地址:http://lancger.blog.51cto.com/8177008/1622547

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!