time 模块由底层C库提供与时间相关的函数,它包含一些函数用于获取时钟时间和处理器运行时间,还提供了基本解析和字符串格式化工具。
datatime 模块为日期、时间、以及日期时间值提供了一个更高层接口。datatime中的类支持算术、比较和时区配置。
calendar 模块可以创建周,月和年的格式化表示,它还可以用来计算重复事件,给定日期是星期几,以及其他给予日历的值
Time---------------------------------时钟时间
作用:管理时钟时间的函数
time 模块提供了一些用于管理日期和时间的C库函数。由于它绑定到底层C实现,一些(如纪元开始时间和支持的最大日期)会特定于具体的平台。要全面了解有关的详细信息,请参考库文档
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()来格式化当前时间以外的另一个时间值。
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 |
有些情况下需要将时间存储为过去了多少秒(秒数),但是还有一些情况,程序需要访问一个日期的各个字段(年,月等)。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实例,将它转换为浮点数表示。
原文地址:http://lancger.blog.51cto.com/8177008/1622547