time 模块 -- 时间获取和转换

time 模块提供各种时间相关的功能

在 Python 中,与时间处理有关的模块包括:time,datetime 以及 calendar

必要说明:

  • 虽然这个模块总是可用,但并非所有的功能都适用于各个平台。
  • 该模块中定义的大部分函数是调用 C 平台上的同名函数实现,所以各个平台上实现可能略有不同。

一些术语和约定的解释:

  • 时间戳(timestamp)的方式:通常来说,时间戳表示的是从 1970 年 1 月 1 日 00:00:00 开始按秒计算的偏移量(time.gmtime(0))此模块中的函数无法处理 1970 纪元年以前的日期和时间或太遥远的未来(处理极限取决于 C 函数库,对于 32 位系统来说,是 2038 年)
  • UTC(Coordinated Universal Time,世界协调时)也叫格林威治天文时间,是世界标准时间。在中国为 UTC+8
  • DST(Daylight Saving Time)即夏令时的意思
  • 一些实时函数的计算精度可能低于它们建议的值或参数,例如在大部分 Unix 系统,时钟一秒钟“滴答”50~100 次

时间元祖(time.struct_time):

gmtime(),localtime() 和 strptime() 以时间元祖(struct_time)的形式返回。

索引值(Index) 属性(Attribute) 值(Values)
0 tm_year(年) (例如:2015)
1 tm_mon(月) 1 ~ 12
2 tm_mday(日) 1 ~ 31
3 tm_hour(时) 0 ~ 23
4 tm_min(分) 0 ~ 59
5 tm_sec(秒) 0 ~ 61(见下方注1)
6 tm_wday(星期几) 0 ~ 6(0 表示星期一)
7 tm_yday(一年中的第几天) 1 ~ 366
8 tm_isdst(是否为夏令时) 0, 1, -1(-1 代表夏令时)

注1:范围真的是 0 ~ 61(你没有看错哦^_^);60 代表闰秒,61 是基于历史原因保留。

time.altzone

返回格林威治西部的夏令时地区的偏移秒数;如果该地区在格林威治东部会返回负值(如西欧,包括英国);对夏令时启用地区才能使用。

time.asctime([t])

接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2015"(2015年12月11日 周二 18时07分14秒)的 24 个字符的字符串。

time.clock()

用以浮点数计算的秒数返回当前的 CPU 时间。用来衡量不同程序的耗时,比 time.time() 更有用。

Python 3.3 以后不被推荐,由于该方法依赖操作系统,建议使用 perf_counter() 或 process_time() 代替(一个返回系统运行时间,一个返回进程运行时间,请按照实际需求选择)

time.ctime([secs])

作用相当于 asctime(localtime(secs)),未给参数相当于 asctime()

time.gmtime([secs])

接收时间辍(1970 纪元年后经过的浮点秒数)并返回格林威治天文时间下的时间元组 t(注:t.tm_isdst 始终为 0)

time.daylight

如果夏令时被定义,则该值为非零。

time.localtime([secs])

接收时间辍(1970 纪元年后经过的浮点秒数)并返回当地时间下的时间元组 t(t.tm_isdst 可取 0 或 1,取决于当地当时是不是夏令时)

time.mktime(t)

接受时间元组并返回时间辍(1970纪元后经过的浮点秒数)

time.perf_counter()

返回计时器的精准时间(系统的运行时间),包含整个系统的睡眠时间。由于返回值的基准点是未定义的,所以,只有连续调用的结果之间的差才是有效的。

time.process_time()

返回当前进程执行 CPU 的时间总和,不包含睡眠时间。由于返回值的基准点是未定义的,所以,只有连续调用的结果之间的差才是有效的。

time.sleep(secs)

推迟调用线程的运行,secs 的单位是秒。

time.strftime(format[, t])

把一个代表时间的元组或者 struct_time(如由 time.localtime() 和 time.gmtime() 返回)转化为格式化的时间字符串。如果 t 未指定,将传入 time.localtime()。如果元组中任何一个元素越界,将会抛出 ValueError 异常。

format 格式如下:

格式 含义 备注
%a 本地(locale)简化星期名称  
%A 本地完整星期名称  
%b 本地简化月份名称  
%B 本地完整月份名称  
%c 本地相应的日期和时间表示  
%d 一个月中的第几天(01 - 31)  
%H 一天中的第几个小时(24 小时制,00 - 23)  
%l 一天中的第几个小时(12 小时制,01 - 12)  
%j 一年中的第几天(001 - 366)  
%m 月份(01 - 12)  
%M 分钟数(00 - 59)  
%p 本地 am 或者 pm 的相应符 注1
%S 秒(01 - 61) 注2
%U 一年中的星期数(00 - 53 星期天是一个星期的开始)第一个星期天之前的所有天数都放在第 0 周 注3
%w 一个星期中的第几天(0 - 6,0 是星期天) 注3
%W 和 %U 基本相同,不同的是 %W 以星期一为一个星期的开始  
%x 本地相应日期  
%X 本地相应时间  
%y 去掉世纪的年份(00 - 99)  
%Y 完整的年份  
%z 用 +HHMM 或 -HHMM 表示距离格林威治的时区偏移(H 代表十进制的小时数,M 代表十进制的分钟数)  
%Z 时区的名字(如果不存在为空字符)  
%% %号本身  

注1:“%p”只有与“%I”配合使用才有效果。
注2:范围真的是 0 ~ 61(你没有看错哦^_^);60 代表闰秒,61 是基于历史原因保留。
注3:当使用 strptime() 函数时,只有当在这年中的周数和天数被确定的时候 %U 和 %W 才会被计算。

举个例子:

  1. # I love FishC.com!
  2. >>> import time as t
  3. >>> t.strftime("a, %d %b %Y %H:%M:%S +0000", t.gmtime())
  4. 'a, 24 Aug 2014 14:15:03 +0000'

time.strptime(string[, format])

把一个格式化时间字符串转化为 struct_time。实际上它和 strftime() 是逆操作。

举个例子:

  1. # I really love FishC.com!
  2. >>> import time as t
  3. >>> t.strptime("30 Nov 14", "%d %b %y")
  4. time.struct_time(tm_year=2014, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=334, tm_isdst=-1)

time.time()

返回当前时间的时间戳(1970 纪元年后经过的浮点秒数)

time.timezone

time.timezone 属性是当地时区(未启动夏令时)距离格林威治的偏移秒数(美洲 >0;大部分欧洲,亚洲,非洲 <= 0)

time.tzname

time.tzname 属性是包含两个字符串的元组:第一是当地非夏令时区的名称,第二个是当地的 DST 时区的名称。

python时间模块详解(time模块)的更多相关文章

  1. python时间处理详解-乾颐堂

    1.获取当前时间的两种方法: import datetime,time now = time.strftime("%Y-%m-%d %H:%M:%S") print now now ...

  2. Python时间获取详解,Django获取时间详解,模板中获取时间详解(navie时间和aware时间)

    1.Python获取到的时间 import pytz from datetime import datetime now = datetime.now() # 这个时间为navie时间(自己不知道自己 ...

  3. python之sys模块详解

    python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...

  4. (转)python标准库中socket模块详解

    python标准库中socket模块详解 socket模块简介 原文:http://www.lybbn.cn/data/datas.php?yw=71 网络上的两个程序通过一个双向的通信连接实现数据的 ...

  5. Node入门教程(8)第六章:path 模块详解

    path 模块详解 path 模块提供了一些工具函数,用于处理文件与目录的路径.由于windows和其他系统之间路径不统一,path模块还专门做了相关处理,屏蔽了彼此之间的差异. 可移植操作系统接口( ...

  6. python中threading模块详解(一)

    python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...

  7. python time 模块详解

    Python中time模块详解 发表于2011年5月5日 12:58 a.m.    位于分类我爱Python 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括: ...

  8. python time模块详解

    python time模块详解 转自:http://blog.csdn.net/kiki113/article/details/4033017 python 的内嵌time模板翻译及说明  一.简介 ...

  9. 小白的Python之路 day5 time,datatime模块详解

    一.模块的分类 可以分成三大类: 1.标准库 2.开源模块 3.自定义模块 二.标准库模块详解 1.time与datetime 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时 ...

  10. Python中time模块详解

    Python中time模块详解 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. ...

随机推荐

  1. 第一次项目冲刺(Alpha版本)2017/11/19

    一.当天站立式会议 会议内容 1.对数据库的设计的进一步讨论 2.讨论SSH一些配置细节 3.分配今天的任务 二.任务分解图 三.燃尽图 四.心得 1.零散的时间要利用起来,追上计划的进度. 2.在小 ...

  2. 026.1 网络编程 获取IP地址

    前面提及的:OSI,TCP-IP,IP地址,端口,协议概念我都清楚,所以我直接跳过前面,来到使用这里. //获取本机IP InetAddress ip = InetAddress.getLocalHo ...

  3. sql: having使用,及删除重复数据

    写了好几年的sql,having语句基本上很少写,这就有一点尴尬了,现在总结一下having的作用,每日整理一下学习文档. having 通常伴随group by使用,过滤group by的数据集. ...

  4. 1864. [ZJOI2006]三色二叉树【树形DP】

    Description Input 仅有一行,不超过500000个字符,表示一个二叉树序列. Output 输出文件也只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色. Sample ...

  5. 【洛谷】【堆+模拟】P2278 操作系统

    from HNOI2003 [题目描述:] 写一个程序来模拟操作系统的进程调度.假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的.其中运行优先级用自然数表示,数字越大,则 ...

  6. SPOJ-SUBSET Balanced Cow Subsets

    嘟嘟嘟spoj 嘟嘟嘟vjudge 嘟嘟嘟luogu 这个数据范围都能想到是折半搜索. 但具体怎么搜呢? 还得扣着方程模型来想:我们把题中的两个相等的集合分别叫做左边和右边,令序列前一半中放到左边的数 ...

  7. 上手 Kubernetes

    一.Kubernetes架构 二.重要的几个概念 1.Pod:最小单元 1.1 一个Pod里可以有多个Container 1.2这些container共享这个pod的同一个网络地址,同一个文件系统,通 ...

  8. 创建JDBCUtils工具类

    JDBCUtils工具类 私有化构造函数,外界无法直接创建对象 提供公共的,静态的,getConnection 方法,用来给外界提供数据库连接 提供公共的,静态的,close方法,用来释放资源 pac ...

  9. springmvc项目打war包部署到tomcat访问路径去掉项目名

    一般来说,部署到tomcat则是把war包丢到webapps目录下,启动Tomcat会自动解压,成一个war包名称的文件夹项目, 例如imgManager.war 访问的地址一般是localhost: ...

  10. 2.编写实现:有一个三角形类Triangle,成员变量有底边x和另一条边y,和两边的夹角a(0<a<180),a为静态成员,成员方法有两个:求面积s(无参数)和修改角度(参数为角度)。 编写实现: 构造函数为 Triangle(int xx,int yy,int aa) 参数分别为x,y,a赋值 在main方法中构造两个对象,求出其面积,然后使用修改角度的方法,修改两边的夹角,再求出面积值。(提示

    求高的方法 h=y*Math.sin(a) 按题目要求,需要我们做的分别是:1.改角度2.显示角度3.求面积并显示 代码用到:1.静态成员变量以修改角度2.数学函数 以下具体代码具体分析 import ...