python3_time模块详解

python提供的时间模块time是需要单独引入:

 1、time.sleep(secs)# 推迟调用线程的运行,secs指的是秒

time.sleep(secs)

2、time.time():返回当前时间的时间戳

时间戳都是从1970年1月1日午夜经过了多久时间来表示,时间间隔是以秒为单位的浮点小数

1 import time
2 
3 ticks = time.time()
4 print("当前时间戳为:", ticks)

当前实际运行结果:

当前时间戳为: 1509945397.5449631

时间戳最适合做日期的运算。

1970年之前的无法以此计算,unix支持到2038年,所以之后的也不行。

 

struct_time元组

python用该元祖装起来的9组数字处理时间:

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

import time

localtime = time.localtime(time.time())
#localtime = time.localtime()
print("本地时间为 :", localtime) 以上实例输出结果: 本地时间为 : time.struct_time(tm_year=2017, tm_mon=11, tm_mday=6, tm_hour=13, tm_min=38, tm_sec=32, tm_wday=0, tm_yday=310, tm_isdst=0)

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

>>>time.gmtime()
           time.struct_time(tm_year=2017, tm_mon=11, tm_mday=6, tm_hour=7, tm_min=24, tm_sec=0, tm_wday=0, tm_yday=310, tm_isdst=0)

 

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

1 import time
2 
3 localtime = time.asctime(time.localtime(time.time()))
4 print("本地时间为 :", localtime)
5 
6 以上实例输出结果:
7 本地时间为 : Mon Nov  6 13:49:41 2017

格式化日期:

#! /usr/bin/python3

import time

# 格式化成2017-11-06 13:56:12形式
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

# 格式化成Mon Nov 06 13:59:42 2017形式
print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))

# 将格式字符串转换为时间戳,time.mktime(t):将一个struct_time转化为时间戳
a = "Mon Nov 06 13:59:42 2017"
print(time.mktime(time.strptime(a, "%a %b %d %H:%M:%S %Y")))


以上实例输出结果:
2017-11-06 14:02:32
Mon Nov 06 14:02:32 2017
1509947982.0

6、time.clock()

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

 

以前看代码比较头疼的%

python中时间日期格式化符号:

 1     %y 两位数的年份表示(00-99 2     %Y 四位数的年份表示(000-9999 3     %m 月份(01-12 4     %d 月内中的一天(0-31 5     %H 24小时制小时数(0-23 6     %I 12小时制小时数(01-12 7     %M 分钟数(00=59 8     %S 秒(00-59 9     %a 本地简化星期名称
10     %A 本地完整星期名称
11     %b 本地简化的月份名称
12     %B 本地完整的月份名称
13     %c 本地相应的日期表示和时间表示
14     %j 年内的一天(001-36615     %p 本地A.M.或P.M.的等价符
16     %U 一年中的星期数(00-53)星期天为星期的开始
17     %w 星期(0-6),星期天为星期的开始
18     %W 一年中的星期数(00-53)星期一为星期的开始
19     %x 本地相应的日期表示
20     %X 本地相应的时间表示
21     %Z 当前时区的名称
22     %% %号本身

备注:

“%p”只有与“%I”配合使用才有效果。

文档中强调确实是0 - 61,而不是59,闰年秒占两秒(汗一个)。

当使用strptime()函数时,只有当在这年中的周数和天数被确定的时候%U和%W才会被计算。

总结:

在Python中共有三种表达方式:1)timestamp 2)tuple或者struct_time 3)格式化字符串。它们之间的转化如图所示:

 

其他相关模块和函数

在Python中,其他处理日期和时间的模块还有:

 

posted @ 2017-11-06 14:17  Ranxf  阅读(436)  评论(0编辑  收藏  举报