最近发现,python中的time函数又不会了。老是混淆,要找很多资料才可以回忆起来。现在整理一下,作为备忘录。同时也分享给初学者。除了下面的功能,time函数经常会被用来作为程序休眠-time.sleep(5).
一、基本概念
1、时间戳
import time
#返回的是时间戳,从1970年到目前系统所经历的时间(秒)
t=time.time()
print(t)
运行结果:
1596099195.7904053
2、时间元组
时间函数的元组格式,用9个格式来表示
二、时间格式
时间格式化是非常常用的一个功能,不管是从字符串到struct_time、date、datetime,还是从struct_time、date、datetime到字符串都需要用到。
格式化主要涉及到2个函数:
strftime:str表示字符串,f是format,time是时间,就是时间格式化为字符串
strptime:str表示字符串,p是parse,time是时间,就是字符串解析为时间
time和datetime都有这2个函数,后面会介绍,下面先看一下格式化的含义。
格式 | 含义 |
---|---|
%y | 两位数的年份表示,00-99 |
%Y | 四位数的年份表示,0000-9999 |
%m | 月份,01-12 |
%d | 日期,0-31 |
%H | 24小时制小时数,0-23 |
%I | 12小时制小时数,01-12 |
%M | 分钟,00-59 |
%S | 秒,00-59 |
%a | 本地简化星期名称 |
%A | 本地完整星期名称 |
%b | 本地简化的月份名称 |
%B | 本地完整的月份名称 |
%c | 本地日期表示和时间表示 |
%j | 第几天,001-366 |
%p | 本地A.MP.M |
%U | 第几周,00-53,星期天为星期的开始 |
%W | 第几周,00-53,星期一为星期的开始 |
%w | 星期几,0-6,星期天为星期的开始 |
%x | 本地日期 |
%X | 本地时间 |
%Z | 当前时区的名称 |
%% | %符合,因为被当做转义字符 |
三、不同类型之间的时间函数相互转换
1、将时间戳转换成时间元组
import time
# UTC时间、将时间戳转化成时间元组,不传入时间表示默认显示从1970年到目前系统的时间
tuple=time.gmtime(time.time())
print(tuple)
#系统时间时间元组
tuple1=time.localtime()
print(tuple1)
运行结果:
time.struct_time(tm_year=2020, tm_mon=7, tm_mday=30, tm_hour=9, tm_min=38, tm_sec=40, tm_wday=3, tm_yday=212, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=7, tm_mday=30, tm_hour=17, tm_min=38, tm_sec=40, tm_wday=3, tm_yday=212, tm_isdst=0)
2、将时间元组转成时间戳
import time tuple2=time.localtime() # 将时间元组转成时间戳 time2=time.mktime(tuple2) print(time2) 运行结果: 1596103539.0
3、将时间元组转换成字符串
import time # 将时间元组转换成格式化的字符串 t=time.strftime("%Y_%m_%d",time.localtime()) print(t) 运行结果: 2020_07_30
import time
#不传入参数默认传入localtime()
t=time.strftime("%Y_%m_%d")
print(t)
运行结果:
2020_07_31
4、将格式化的字符串转换成时间元组
import time # 将格式字符串转换为时间戳 a = "2020-01-01 11:59:59" str2TT = time.strptime(a, "%Y-%m-%d %H:%M:%S") print(str2TT) 运行结果: time.struct_time(tm_year=2020, tm_mon=1, tm_mday=1, tm_hour=11, tm_min=59, tm_sec=59, tm_wday=2, tm_yday=1, tm_isdst=-1)