前言:
而今姐妹们对“pythongmt”可能比较关切,朋友们都想要学习一些“pythongmt”的相关资讯。那么小编同时在网络上搜集了一些对于“pythongmt””的相关知识,希望看官们能喜欢,你们快快来学习一下吧!1、概述
datetime模块主要是用来表示日期的,就是我们常说的年月日时分秒,calendar模块主要是用来表示年月日,是星期几之类的信息,time模块主要侧重点在时分秒,粗略从功能来看,我们可以认为三者是一个互补的关系,各自专注一块。方便用户依据不同的使用目的选用趁手的模块。
2、从time模块说起
为了学习time模块,我们需要先知道几个与时间相关的概念:
1) epoch
假设我们要将时间表示成毫秒数,比方说1000000毫秒,那有一个问题必须解决,这个1000000毫秒的起点是什么时间,也就是我们的时间基准点是什么时间?好比我说你身高1.8米,那这个身高是指相对于你站立的地面说的。这个时间基准点就是epoch,在Unix系统中,这个基准点就是1970年1月1日0点整那个时间点。
2)GMT, UTC
上面我们说epoch表示1970年的起始点,那这个1970年又是相对于哪个基准时间呢?一般来说,就是相对于格林尼治时间,也叫做GMT(Greenwich Mean Time)时间,还叫做UTC(Coordinated Universal Time),为啥一个时间基准有两个名字?历史上,先有的GMT,后有的UTC.
UTC是我们现在用的时间标准,GMT是老的时间计量标准。UTC是根据原子钟来计算时间,而GMT是根据地球的自转和公转来计算时间。
所以,可以认为UTC是真正的基准时间,GMT相对UTC的偏差为0。
在实际中,我们的计算机中有一个硬件模块RCT,里面会实时记录UTC 时间,该模块有单独的电池供电,即使关机也不影响。
有了epoch这个时间基准,又有了UTC这个基准的基准,我们就可以精确地表示一个时间了。
3)DST, tzone
尽管我们已经可以精确地表示一个时间,很多情况下,我们还是要根据地区实际情况对时间进行一个调整,最常见的就是时区,tzone,相信大家都比较熟悉。
此时,当我们说5点5分这个时间时,还需加上是哪个时区的5点5分才能精确说明一个时间。
另外一个对时间做出调整的就是DST.
DST 全称是Daylight Saving Time,是说,为了充分利用日光,减少用电,人为地对时间做出一个调整,这取决于不同国家和地区的政策法规。比如说,假设你冬天7点天亮起床,但夏天6点天亮,那么在夏天到来时人为将时间加1个小时,这样就可以让你还是觉得7点起床,但实际上是提前一个小时了。
那么,好奇的我们,一定要问一问,python是如何知道tzone和DST这两个的值呢?答案是通过环境变量。
这里我们只以linux为例来说明一下。
在linux中有TZ环境变量,其值类似这样:
CST+08EDT,M4.1.0,M10.5.0,这个字符串可以做如下解读,用空格分开他们,分成三部分
CST+08 EDT, M4.1.0,M10.5.0
1.第一部分中的CST表示时区的名字,即China Standard Time,也就是我们说的北京时间,+8表示北京时间加上8小时就是UTC时间
2.第二部分EDT表示DST的名字,我们说DST是因各个国家地区的政策法规不同而不同的,EDT后面也可以像CST后面一样加一个时间调整值,但由于我们国内只在86年到92年实行过一段时间DST,现在已经废止,所以后面不用加调整时间。
3.第三部分表示的是实行DST的开始和结束时间,我们就不细解读了。
4,时间的表示,获取,转换
time模块中获取时间的基本方法是
t = time.time()
它返回的是从epoch到现在的秒数(用浮点数表示),用的是UTC时间。
我们自然而然地想把这个秒数转为年月日时分秒的形式,而这种转换又分两种,一种还是用UTC时间,一种用我们所在时区进行调整后的时间。
最后,划重点!!!
Testin云测送大家一波超级福利!
① 价值5000元的Testin专属测试大礼包(包含120分钟自动化测试、120分钟远程真机调试、每日免费使用1次标准兼容测试、每日免费使用1次安全测试);
② 原51testing产品总监陈霁老师16年测试工作总结精华 -《软件测试入门必读》课程。
如何获取福利?
登陆或者注册您的Testin账号进行企业认证,完成认证自动获得福利大礼包,认证请戳——>
标签: #pythongmt