十年资深程序员对Python中的时间处理进行总结 !半个小时看不完
2,从time模块说起为了学习time模块,我们需要先知道几个与时间相关的概念:1),epoch假设我们要将...
2,从time模块说起
为了学习time模块,我们需要先知道几个与时间相关的概念:
1),epoch
假设我们要将时间表示成毫秒数,比方说1000000毫秒,那有一个问题必须解决,这个1000000毫秒的起点是什么时间,也就是我们的时间基准点是什么时间?好比我说你身高1.8米,那这个身高是指相对于你站立的地面说的。这个时间基准点就是epoch,在Unix系统中,这个基准点就是1970年1月1日0点整那个时间点。
3),DST, tzone
尽管我们已经可以精确地表示一个时间,很多情况下,我们还是要根据地区实际情况对时间进行一个调整,最常见的就是时区,tzone,相信大家都比较熟悉。
此时,当我们说5点5分这个时间时,还需加上是哪个时区的5点5分才能精确说明一个时间。
1.第一部分中的CST表示时区的名字,即China Standard Time,也就是我们说的北京时间,+8表示北京时间加上8小时就是UTC时间
2.第二部分EDT表示DST的名字,我们说DST是因各个国家地区的政策法规不同而不同的,EDT后面也可以像CST后面一样加一个时间调整值,但由于我们国内只在86年到92年实行过一段时间DST,现在已经废止,所以后面不用加调整时间。
3.第三部分表示的是实行DST的开始和结束时间,我们就不细解读了。
string f和string p
1.time里面没time
2.藏在datetime里
编的是不是不咋地?嗯,我也这么觉得。
datetime类就是date和time的组合。
有一点需要提前说明一下,time类和datetime类都有一个属性,它的值是一个tzinfo对象,里面包含了该time或者datetime的时区信息,一般称这个time或者datetime对象是aware的,它能够准确换算成自epoch开始的秒数。
如果该属性设置为None,那么,这时的time对象或者datetime对象就没有时区信息,具体它表示的是local time还是utc time,需要我们自己在程序中去决定。
这里我们所说的local time是指我们所在时区的时间, utc time指的就是国际标准时间,也就是格林尼治时间。下文同。
请记住一点,date中是没有时区信息的。
3),date和time的创建
date对象的创建和datetime非常相似,
datetime. date. today()
datetime.date.fromtimestamp()都可以创建一个date对象。
当然,你也可以通过构造方法传入年月日来创建date对象。
相比之下,time对象的创建就很有限,只能通过
datetime.time([hour[, minute[, second[, microsecond[, tzinfo]]]]])
一个timedelta对象含有三个属性:days,seconds, microseconds,days属性可以取负值,另外两个属性都只能是正值。
你可以用total_seconds()方法获得一个timedelta对象的秒数表示。
两个timedelta对象之间可加,可减,但不能做大小比较,因为这样没什么意义。
一个timedelta对象还可以与整数相乘,或通过//操作与一个整数相除。
还可以取反,或者用abs函数获得绝对值
侵权请联系小编删除哦!
关注 Python学习交流
微信扫一扫关注公众号