在python中,关于时间的模块使用有(time,datetime以及calendar)三种,这里主要描述time模块时间使用方法:
import time #首先通过import调用time模块;
print(help(time)) #我们可以通过help获取time的详细介绍
时间戳:
表示是从1970年1月1号 00:00:00开始到现在按秒计算的偏移量,返回时间戳的函数有time()和clock()可获取从1970.1.1到现在的时间,单位为S(秒)
格式化的时间字符串:
UTC(世界协调时),就是格林威治天文时间,也是世界标准时间,中国为UTC+。
元组方式:
struct_time元组共有9个元素,另外返回struct_time的函数主要有gmtime(),localtime(),strptime();
print(time.localtime)打印如下:
time.struct_time(tm_year=2020, tm_mon=10, tm_mday=23, tm_hour=15, tm_min=27, tm_sec=10, tm_wday=4, tm_yday=297, tm_isdst=0)
tm_year :年
tm_mon :月(1-12)
tm_mday :日(1-31)
tm_hour :时(0-23)
tm_min :分(0-59)
tm_sec :秒(0-59)
tm_wday :星期几(0-6,0表示周日)
tm_yday :一年中的第几天(1-366)
tm_isdst :是否是夏令时(默认为-1)
time模块常用方法:
- time.sleep(seconds) 延迟等待一段时间 单位为秒
如下运行结果是每隔1S打印一个数字
import time
for i in range(10):
time.sleep(1)
print(i)
2、time.time() #计算时间戳
print(time.time()) #1603438592.6061049
3、time.clock() #计算CPU执行时间
print(time.clock())
4、time.gmtime()
print(time.gmtime())#世界标准时间 time.struct_time(tm_year=2020, tm_mon=10, tm_mday=23, tm_hour=7, tm_min=47, tm_sec=4, tm_wday=4, tm_yday=297, tm_isdst=0)
print(time.localtime()) #本地时间 time.struct_time(tm_year=2020, tm_mon=10, tm_mday=23, tm_hour=15, tm_min=47, tm_sec=4, tm_wday=4, tm_yday=297, tm_isdst=0)
5、time.strftime(format,p_tuple) #返回字符串表示的当地时间
把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的字符串,格式有参数format决定。如果未指定,将传入time.localtime().如果元组中的任何一个元素越界,就会抛出ValueError异常。函数返回的是一个可读表示的本地时间的字符串。
参数:
- format:格式化字符串 如:"%Y-%m-%d %H:%M:%S"
- p_tuple:可选的参数是一个struct_time对象 如:time.localtime()
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
打印结果为:2020-10-23 16:06:06
时间格式符号介绍:
%a 本地星期名称的简写(如星期四为Thu)
%A 本地星期名称的全称(如星期四为Thursday)
%b 本地月份名称的简写(如八月份为agu)
%B 本地月份名称的全称(如八月份为august)
%c 本地相应的日期和时间的字符串表示(如:15/08/27 10:20:06)
%d 一个月中的第几天(01 - 31)
%f 微妙(范围0.999999)
%H 一天中的第几个小时(24小时制,00 - 23)
%I 第几个小时(12小时制,0 - 11)
%j 一年中的第几天(001 - 366)
%m 月份(01 - 12)
%M 分钟数(00 - 59)
%p 本地am或者pm的相应符
%S 秒(00 - 61)
%U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之 前的所有天数都放在第0周。
%w 一个星期中的第几天(0 - 6,0是星期天)
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始。
%x 本地相应日期字符串(如15/08/01)
%X 本地相应时间字符串(如08:08:10)
%y 去掉世纪的年份(00 - 99)两个数字表示的年份
%Y 完整的年份(4个数字表示年份)
%z 与UTC时间的间隔(如果是本地时间,返回空字符串)
%Z 时区的名字(如果是本地时间,返回空字符串)
%% ‘%’字符
6、time.strptime(string,format)#将格式化的时间字符串转化为struct_time
该函数是strftime(format,p_tuple)的逆操作,time strptime() 函数根据指定的格式把一个时间字符串解析为时间元组。所以函数返回的是struct_time对象。
参数:
- string :时间字符串
- format:格式化字符串
例如:
stime = "2020-10-23 16:06:06"
strp = time.strptime(stime,"%Y-%m-%d %H:%M:%S")
print(strp )
#打印结果 time.struct_time(tm_year=2021, tm_mon=10, tm_mday=23, tm_hour=16, tm_min=6, tm_sec=6, tm_wday=5, tm_yday=296, tm_isdst=-1)
print(strp.)#2020
print(strp.tm_hour)# 16
7、time.asctime( [t] )
把一个表示时间的元组或者struct_time表示为 ‘Sun Aug 23 14:31:59 2015’ 这种形式。如果没有给参数,会将time.localtime()作为参数传入。
参数:
- t – 9个元素的元组或者通过函数 gmtime() 或 localtime() 返回的时间值
import time
time.asctime()
#打印输出:'Fri Oct 23 16:38:40 2020'
8、time.ctime([secs])
把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果为指定参数,将会默认使用time.time()作为参数。它的作用相当于time.asctime(time.localtime(secs))
参数:
- sec – 要转换为字符串时间的秒数
time.ctime()默认参数为time.ctime(time.time())
打印输出;'Fri Oct 23 16:42:28 2020'
9、time.mktime(t) #将struct_time转化为时间戳
time.mktime() 函数执行与gmtime(), localtime()相反的操作,它接收struct_time对象作为参数,返回用秒数表示时间的浮点数。
如果输入的值不是一个合法的时间,将触发 OverflowError 或 ValueError。
参数:
- t – 结构化的时间或者完整的9位元组元素
比如:print(time.mktime(time.localtime())) #打印输出:1603442933.0 (s)
datetime模块
import datetime #导入datetimo 模块
time_now = datetime.datetime.now()
print(time_now) #2020-10-23 16:53:32.878369