Python 标准库之 time

1. 简介

在 Python 文档里,time 是归类在Generic Operating System Services中,换句话说, 它提供的功能是更加接近于操作系统层面的。通读文档可知,time 模块是围绕着 Unix Timestamp 进行的。

该模块主要包括一个类 struct_time,另外其他几个函数及相关常量。 需要注意的是在该模块中的大多数函数是调用了所在平台C library的同名函数, 所以要特别注意有些函数是平台相关的,可能会在不同的平台有不同的效果。另外一点是,由于是基于Unix Timestamp,所以其所能表述的日期范围被限定在 1970 – 2038 之间,如果你写的代码需要处理在前面所述范围之外的日期,那可能需要考虑使用datetime模块更好。

2. 常用方法

函数 说明
time.time() 返回时间戳格式的时间 (相对于1970.1.1 00:00:00以秒计算的偏移量)
time.ctime() 返回字符串形式的时间,可以传入时间戳格式时间,用来做转化
time.asctime() 返回字符串形式的时间,可以传入struct_time形式时间,用来做转化
time.localtime() 返回当前时间的struct_time形式,可传入时间戳格式时间,用来做转化
time.gmtime() 返回当前时间的struct_time形式,UTC时区(0时区) ,可传入时间戳格式时间,用来做转化
时间格式化
time.mktime() 将一个以struct_time格式转换为时间戳
time.strftime(format[,t]) 把一个struct_time时间转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。如果元组中任何一个元素越界,ValueError的错误将会被抛出
time.strptime(string[,format]) 把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。
计时器功能
time.sleep(secs) 线程推迟指定的时间运行。单位为秒。
time.clock() 这个需要注意,在不同的系统上含义不同。在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间
其它内置函数
altzone() 返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用
tzset() 根据环境变量TZ重新初始化时间相关设置
timezone 是当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲;<=0大部分欧洲,亚洲,非洲)
tzname 包含一对根据情况的不同而不同的字符串,分别是带夏令时的本地时区名称,和不带的
In [1]: import time

In [2]: time.time()
Out[2]: 1526196952.434

In [3]: time.ctime()
Out[3]: 'Sun May 13 15:36:09 2018'

In [4]: time.asctime()
Out[4]: 'Sun May 13 15:36:28 2018'

In [5]: time.localtime()
Out[5]: time.struct_time(tm_year=2018, tm_mon=5, tm_mday=13, tm_hour=15, tm_min=36, tm_sec=49, tm_wday=6, tm_yday=133, tm_isdst=0)
# struct_time共有9个元素,其中前面6个为年月日时分秒,后面三个分别代表的含义为:
# tm_wday 一周的第几天(周日是0)
# tm_yday 一年的第几天
# tm_isdst 是否是夏令时

In [6]: time.gmtime()
Out[6]: time.struct_time(tm_year=2018, tm_mon=5, tm_mday=13, tm_hour=7, tm_min=37, tm_sec=3, tm_wday=6, tm_yday=133, tm_isdst=0)

In [7]: time.mktime(time.localtime())
Out[7]: 1526197173.0

In [8]: time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
Out[8]: '2018-05-13 15:54:35'

In [9]: time.strptime(time.ctime())
Out[9]: time.struct_time(tm_year=2018, tm_mon=5, tm_mday=13, tm_hour=15, tm_min=56, tm_sec=36, tm_wday=6, tm_yday=133, tm_isdst=-1)

In [10]: time.timezone
Out[10]: -28800

In [12]: time.tzname
Out[12]: 
('\xd6\xd0\xb9\xfa\xb1\xea\xd7\xbc\xca\xb1\xbc\xe4',
 '\xd6\xd0\xb9\xfa\xcf\xc4\xc1\xee\xca\xb1')

In [13]: time.tzname[0].decode("GBK")
Out[13]: u'\u4e2d\u56fd\u6807\u51c6\u65f6\u95f4'

In [14]: print time.tzname[0].decode("GBK")
中国标准时间

In [15]: print time.tzname[1].decode("GBK")
中国夏令时

time.strftime(format[,t]) 时间字符串格式化参数列表

参数 说明
%c 本地相应的日期和时间表示
%x 本地相应日期
%X 本地相应时间
%y 去掉世纪的年份(00 – 99)
%Y 完整的年份
%m 月份(01 – 12)
%b 本地简化月份名称
%B 本地完整月份名称
%d 一个月中的第几天(01 – 31)
%j 一年中的第几天(001 – 366)
%U 一年中的星期数。(00 – 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始
%w 一个星期中的第几天(0 – 6,0是星期天)
%a 本地(locale)简化星期名称
%A 本地完整星期名称
%H 一天中的第几个小时(24小时制,00 – 23)
%I 第几个小时(12小时制,01 – 12)
%p 本地am或者pm的相应符,“%p”只有与“%I”配合使用才有效果
%M 分钟数(00 – 59)
%S 秒(01 – 61),文档中强调确实是0 – 61,而不是59,闰年秒占两秒
%Z 时区的名字(如果不存在为空字符)
%% ‘%’字符

你可能感兴趣的:(Python)