文章介绍了Python中time模块的相关概念,包括epoch、时区(tzone)、夏令时(DST)、string f和string p等,并解释了datetime类和time类的创建和使用,以及timedelta对象的属性和操作。
文章介绍了与时间相关的几个重要概念,包括epoch、时区(tzone)、夏令时(DST)等,这些都是理解和使用time模块的基础。
文章详细解释了datetime类和time类的创建和使用,包括如何获取当前日期和时间、如何从时间戳创建日期对象等。
文章介绍了timedelta对象的属性(days、seconds、microseconds)以及相关的操作,如加法、减法、乘法、除法、取反、取绝对值等。
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中是没有时区信息的。