文章目录
一、time
1.介绍
内置库
2.使用
import time
from time import *
二、三种格式
- 秒数历元时间:表示从1970年1月1日午夜(历元)经过了多少秒。
如,1609387280.3342752
。 - 时间戳 struct_time:九位元组。
如,定义变量是t = struct_time((2020, 12, 31, 11, 56, 7, 3, 366, -1))
,
输出显示是time.struct_time(tm_year=2020, tm_mon=8, tm_mday=29, tm_hour=23, tm_min=39, tm_sec=44, tm_wday=5, tm_yday=242, tm_isdst=0)
- 时间字符串:自定义的字符串。
如,'2020-12-31 4 11:56:07'
1.strftime:时间戳→指定格式的时间字符串
# 按照自定义格式的获取当前时间
>>> t = struct_time((2020, 12, 31, 11, 56, 7, 3, 366, -1))
>>> strftime('%Y-%m-%d %w %H:%M:%S', t)
'2020-12-31 4 11:56:07'
# 第几周的不同:%U %W
>>> t1 = strptime('2020-01-05 11:56:07','%Y-%m-%d %H:%M:%S');
>>> strftime('%U %W', t1);
01 00
2.strptime:指定格式的时间字符串→时间戳
strptime(string[, format])
>>> strptime('2020-12-31 4 11:56:07','%Y-%m-%d %w %H:%M:%S')
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=31, tm_hour=11, tm_min=56, tm_sec=7, tm_wday=3, tm_yday=366, tm_isdst=-1)
3.mktime:时间戳→秒数历元时间
mktime(struct_time)
>>> t = struct_time((2020, 12, 31, 11, 56, 7, 3, 366, -1))
>>> mktime(t)
1609386967.0
4.localtime:秒数历元时间→时间戳
>>> t = 1609393508.7334917
>>> localtime(t)
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=31, tm_hour=13, tm_min=45, tm_sec=8, tm_wday=3, tm_yday=366, tm_isdst=0)
三、用途
1.获取当前时间
# 秒数历元时间
>>> time()
1609387466.098439
# 时间戳
>>> localtime()
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=31, tm_hour=12, tm_min=4, tm_sec=57, tm_wday=3, tm_yday=366, tm_isdst=0)
# 自定义字符串
>>> strftime('%Y-%m-%d %w %H:%M:%S',localtime())
'2020-12-31 4 12:05:53'
2.休眠暂停 和 统计用时
函数 | 参数 | 作用 |
---|---|---|
sleep(t:float) | t:暂停的秒数,单位秒 | 暂停程序一段时间 |
time() | 返回一个浮点数,单位秒,表示从1970年1月1日午夜(历元)经过了多长时间 |
# 获取运行时间,秒
from time import *
start_time = time() # 开始时间
# 睡眠5秒
sleep(5)
end_time = time() # 结束时间
print(end_time - start_time) # 经过秒数
# 5.000269889831543
3. 某天的昨天
from time import *
# 1 天=86400 秒
one_day = 86400
# 某天
t0_struct = strptime('2020-12-31','%Y-%m-%d')
t0_second = mktime(t0_struct)
# 昨天
t1_second = t0_second - one_day*1
t1_struct = localtime(t1_second)
t1_str = strftime('%Y-%m-%d', t1_struct)
print(t1_str)
'''2020-12-30'''
# 如today = '2020-02-12',day_count = 1,表示明天'2020-02-13'
def get_day(today, day_count):
# 1 天=86400 秒
one_day = 86400
# 某天
t0_struct = time.strptime(today,'%Y-%m-%d')
t0_second = time.mktime(t0_struct)
# toyday + day_count天
t1_second = t0_second + one_day*day_count
t1_struct = time.localtime(t1_second)
t1_str = time.strftime('%Y-%m-%d', t1_struct)
return t1_str
4. 比较时间大小
-
转化成相同格式的字符串后,直接比较字符串。如
'2020-01-30' < '2020-02-12
https://blog.csdn.net/sandalphon4869/article/details/104455348 -
转化成秒数历元时间,比较浮点数大小