导入模块
import time
不常用但会看到的几个方法
time.altzone() 返回格林威治西部的夏令时地区的偏移秒数。往东是负数
time.asctime([time_tuple]) 接收时间元组,返回可读形式的日期字符串,不传参数默认是当前时间
格式:Tue Aug 20 09:54:50 2019
time.ctime([time_stamp]) 接收时间戳,返回可读形式的日期字符串,不传参数默认是当前时间
格式:Tue Aug 20 09:54:50 2019
获取时间元组
time.gmtime([time_stamp]) 接收时间戳,返回格林威治时间元祖
time.localtime([time_stamp]) 接收时间戳,返回本地时间元祖
tm_wday:weekday一个星期的第几天,从0开始,0-6
tm_isdst: 是否是夏令时
时间戳
# 从1970年1月1号 0点0分开始到现在的秒数
time.time() 获取时间戳,返回float,小数点后6位
time.mktime([time_tuple]) 接收时间元组,返回时间戳
睡眠
time.sleep(secs) 计算机进程休息睡眠secs秒钟。
格式化
time.strftime(fmt[,time_tuple]) 传入格式化字符串和时间元组,返回格式化字符串
time.strptime(time_str,fmt) 传入时间字符串,返回时间元组
fmt写法,时间格式:
格式 | 含义 |
%a | 本地(local)简化星期名称 |
%A | 本地完整星期名称 |
%b | 本地简化月份名称 |
%B | 本地完整月份名称 |
%c | 本地相应的日期和时间表示 |
%d | 一个月中的第几天(01 - 31) |
%H | 一天中的第几个小时(24小时制,00 - 23) |
%I | 第几个小时(12小时制,01 - 12) |
%j | 一年中的第几天(001 - 366) |
%m | 月份(01 - 12) |
%M | 分钟数(00 - 59) |
%p | 本地am或者pm的相应符 |
%S | 秒(01 - 61) |
%U | 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。 |
%w | 一个星期中的第几天(0 - 6,0是星期天) |
%W | 和%U基本相同,不同的是%W以星期一为一个星期的开始。 |
%x | 本地相应日期 |
%X | 本地相应时间 |
%y | 去掉世纪的年份(00 - 99) |
%Y | 完整的年份 |
%Z | 时区的名字(如果不存在为空字符) |
%% | ‘%’字符 |
日期格式化常用格式:
"%Y-%m-%d %H:%M:%S"
进程运行时间
time.process_time() 进程从开始运行到此的耗时
示例:
import time
# 获取时间元组
tu_time1=time.localtime()
print(tu_time1)
# 1、可以用asctime格式化时间元组
print(time.asctime(tu_time1))
# 2、也可以自定义字符串输出格式
print(time.strftime("%Y-%m-%d %H:%M:%S"))
# 输出
# time.struct_time(tm_year=2019, tm_mon=8, tm_mday=20, tm_hour=17, tm_min=21, tm_sec=37, tm_wday=1, tm_yday=232, tm_isdst=0)
# Tue Aug 20 17:21:37 2019
# 2019-08-20 17:21:37
时间转换图解,时间戳--时间元祖--时间字符串的相互转换关系,如下图所示:
练习:
1.将字符串的时间"2017-10-10 23:40:00"转换为时间戳和时间元组
import time
str="2017-10-10 23:40:00"
# 转换成时间元组
time_tup1=time.strptime(str,"%Y-%m-%d %H:%M:%S")
print(time_tup1)
# 时间元组转换成时间戳
time_stamp1=time.mktime(time_tup1)
print(time_stamp1)
2.字符串格式更改。如提time = "2017-10-10 23:40:00",想改为 time= "2017/10/10 23:40:00"
time2="2017-10-10 23:40:00"
# 先转成时间元组
time_tup2=time.strptime(time2,"%Y-%m-%d %H:%M:%S")
print(time_tup2)
# 再把时间元组格式化成字符串
time_result=time.strftime("%Y/%m/%d %H:%M:%S",time_tup2)
print(time_result)
3.获取当前时间戳转换为指定格式日期
time3=time.time()
print(time3)
time_tup3=time.localtime(time3)
print(time_tup3)
time_result=time.strftime("%Y-%m-%d %H:%M:%S",time_tup3)
print(time_result)
4.获得三天前的时间
time4=time.time()
time3DayBefore=time4-(3*24*60*60)
time_tup4=time.localtime(time3DayBefore)
print(time_tup4)
time_result=time.strftime("%Y-%m-%d %H:%M:%S",time_tup4)
print(time_result)