time模块提供了一些用于管理时间和日期的C库函数,由于它绑定到底层C实现,因此一些细节会基于具体的平台。
time模块的核心函数time(),它返回纪元开始的秒数,返回值为浮点数,具体精度依赖于平台。
123 | >>>import time>>>time.time()1460599046.85416 |
浮点数一般用于存储和比较日期,但是对人类不友好,要记录和打印时间,可以使用ctime()。
123456 | >>>import time>>>time.ctime()\’Thu Apr 14 10:03:58 2016\’>>> later = time.time()+5>>> time.ctime(later)\’Thu Apr 14 10:05:57 2016\’ |
clock()返回处理器时钟时间,它的返回值一般用于性能测试与基准测试。因此它们反映了程序的实际运行时间。
123 | >>>import time>>>time.clock()0.07 |
time模块定义了struct_time来维护时间和日期,其中分开存储各个组成部分,以便访问。
123456789101112 | import timedef 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_ydayshow_struct(time.gmtime())show_struct(time.localtime()) |
gmtime()用于获取UTC时间,localtime()用于获取当前时区的当前时间,UTC时间实际就是格林尼治时间,它与中国时间的时差为八个小时。
1 | locatime() = gmtime() + 8hour |
123 | >>>import time>>>time.timezone/3600–8 |
1234 | ZONES = [\”GMT\”, \”EUROPE/Amsterdam\’]for zone in ZONES: os.environ[\”TZ\”] = zone time.tzset() |
time模块提供了两个函数strptime()和strftime(),可以在struct_time和时间值字符串之间转换。
用于将字符串时间转换成struct_time格式:
123 | >>> now=time.ctime()>>> time.strptime(now)time.struct_time(tm_year=2016, tm_mon=4, tm_mday=14, tm_hour=10, tm_min=48, tm_sec=40, tm_wday=3, tm_yday=105, tm_isdst=–1) |
用于时间的格式化输出
123 | >>> from time import gmtime, strftime>>> strftime(\”%a, %d %b %Y %H:%M:%S +0000\”, gmtime())\’Thu, 28 Jun 2001 14:17:15 +0000\’ |
用于将struct_time转换成时间的浮点数表示
123 | >>>from time import mktime, gmtime>>>mktime(gmtime())1460573789.0 |
sleep函数用于将当前线程交出,要求它等待系统将其再次唤醒,如果写程序只有一个线程,这实际上就会阻塞进程,什么也不做。
1234 | import timedef fucn(): time.sleep(5) print \”hello, world\” |
执行上面的代码,将等待5秒钟之后再输出信息。
上一篇:Python的metaclass
下一篇:Python的16个“坑”