Python项目中很多时候会需要将时间在Datetime格式和TimeStamp格式之间转化,本文将对python中多个时间储存方式、时间模块(如time、datetime、timeit)以及他们之间的转换关系进行详细的梳理和总结。整体梳理后表示图如下:
一,python中储存时间的三种格式
1,时间元组(结构体时间)
共有九个元素组
2,时间戳
时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
3,格式化时间
已格式化的结构使时间更具可读性。包括自定义格式和固定格式。
二、time库
1,time.time()
创建时间戳
返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
1 2 3 4 5 6 7 |
|
2,time.localtime([ sec ])
创建结构体时间 | 将时间戳转换为结构体时间(本地)
格式化时间戳为本地的时间,返回结构体时间。若sec参数未输入,则以当前时间为转换。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
3,time gmtime([ sec ])
将时间戳转换为结构体时间(0时区)
将一个时间戳转换为UTC时区(0时区)的struct_time,可选的参数sec表示从1970-1-1以来的秒数。其默认值为time.time(),函数返回time.struct_time类型的对象。(struct_time是在time模块中定义的表示时间的对象)。
1 2 3 4 5 6 7 8 9 10 11 |
|
4,time.strftime(format[, t])
将结构体时间转换为字符串
输入结构体时间,输出为按照输入的格式的字符串
1 2 3 4 5 6 7 |
|
5,time.strptime(string[, format])
将字符串转换为结构体时间
根据指定的格式把一个时间字符串解析为结构体时间。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
6,time mktime(t)
将结构体时间转换为时间戳 接收struct_time对象作为参数,返回用秒数来表示时间的浮点数。
如果输入的值不是一个合法的时间,将触发 OverflowError 或 ValueError。
1 2 3 4 5 6 7 |
|
7,time.sleep(nums)
推迟执行的秒数,没有任何输出
1 2 3 4 5 6 7 |
|
8,timeit.Timer.timeit([number])
用来计算一个函数平均执行了多少时间
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
三,datetime库
datetime模块包含如下类
1,datetime.date类
表示日期的类,常用的属性有year、month、day。参数都为整数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
2,datetime.time类
表示时间的类,参数包括hour、minute、second、microsecond。 time类的方法同datetime类。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
3,datetime.datetime类
日期实践类,常用的参数包含year、month、day、hour、minute、second、microsecond。但是至少要包含year、month、day三个参数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
|
4,datetime.timedelta类
表示时间间隔类,给一个时间点加上此类,即可得到一个新的时间。参数包含days、hours、minutes、seconds、microseconds。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
四,time模块和datetime模块之间的相互转换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|