Python中time模块学习

一,Time模块包含的函数

Time模块包含了一下内置的函数,既有时间处理的,也有转换时间格式的:

序号  函数及描述
1   time.altzone
      返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。
2   time.asctime([tupletime])
      接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"20081211日 周二180714秒)的24个字符的字符串。
3   time.clock( )
      用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。
4   time.ctime([secs])
      作用相当于asctime(localtime(secs)),未给参数相当于asctime()
5   time.gmtime([secs])
      接收时间戳(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为0
6   time.localtime([secs])
      接收时间戳(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取01,取决于当地当时是不是夏令时)。
7   time.mktime(tupletime)
      接受时间元组并返回时间戳(1970纪元后经过的浮点秒数)。
8   time.sleep(secs)
      推迟调用线程的运行,secs指秒数。
9   time.strftime(fmt[,tupletime])
      接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。
10  time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
      根据fmt的格式把一个时间字符串解析为时间元组。
11  time.time( )
      返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
12  time.tzset()
      根据环境变量TZ重新初始化时间相关设置。

下面我们分别解释每一个函数的用法

  1. altzone()
    参数:无
    返回值:返回格林威治西部的夏令时地区的偏移描述。如果该地区在格林威治东部会返回负值(如西欧,包括美国)
    语法:
m = time.altzone
print("m =",m)
>>>m = -32400
  1. asctime()
    参数:9个元素的元祖或者通过函数 gmtime() 或 localtime() 返回的时间值
    返回值:返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2018年10月11日 周二18时07分14秒)的24个字符的字符串。
    语法:
time.asctime()
>>>'Tue Oct 23 16:27:39 2018'
time.asctime(time.localtime())
>>>'Tue Oct 23 16:28:08 2018'
  1. perf_counter()
    参数:无
    返回值:
    该函数有两个功能,
    在第一次调用的时候,返回的是程序运行的实际时间;
    以第二次之后的调用,返回的是自第一次调用后,到这次调用的时间间隔
    语法:
print(time.perf_counter())
for i in range(1, 100):
    print(i)
print(time.perf_counter())
>>>0.0
>>>6.6986723828671e-05
  1. ctime()
    参数: 要转换为字符串时间的秒数
    返回值:无
    语法:
print(time.ctime())
'Tue Oct 23 16:38:18 2018'
print(time.ctime(1024))
'Thu Jan  1 08:17:04 1970'
  1. gmtime()
    参数:转换为 time.stryct_time 类型的对面的秒数
    返回值:无
    语法:
print(time.gmtime())
>>>time.struct_time(tm_year=2018, tm_mon=10, tm_mday=23, tm_hour=8, tm_min=41, tm_sec=2, tm_wday=1, tm_yday=296, tm_isdst=0)
print(time.gmtime(45))
>>>time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=45, tm_wday=3, tm_yday=1, tm_isdst=0)
print(time.gmtime(2))
>>>time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=2, tm_wday=3, tm_yday=1, tm_isdst=0)
  1. locatime()
    参数:转换为 time.struct_time 类型的对面的秒数
    返回值:无
    语法:
print(time.localtime())
>>>time.struct_time(tm_year=2018, tm_mon=10, tm_mday=23, tm_hour=16, tm_min=44, tm_sec=6, tm_wday=1, tm_yday=296, tm_isdst=0)
  1. sleep()
    参数:推迟执行的秒数
    返回值:无
    语法:
print(time.ctime())
>>>Tue Oct 23 16:49:45 2018
time.sleep(5)
print(time.ctime())
>>>Tue Oct 23 16:49:50 2018
  1. strftime(format[, t ])
    参数:format - 格式字符串 t - 可选的参数t是一个struct_time对象
    返回值:可读字符串标识的当地时间
    说明:
    python 中时间日期格式化符号
%y 两位数的年份表示(00-99%Y 四位数的年份表示(000-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.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

语法:
print(time.strftime(“%Y %m %d %H:%M:%S”))

2018 10 23 16:57:02’

  1. time()
    参数:无
    返回值:返回当前时间的时间戳(1970纪元后经过的浮点秒数)
print ("time.time(): %f " %  time.time())
>>>time.time(): 1540285177.428731
print (time.asctime( time.localtime(time.time()) ))
>>>Tue Oct 23 16:59:37 2018
  1. 毫秒级时间字符串转时间戳
import datetime
def convert(time_str):
    time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S.%f')
    time_stamp = time_obj.timestamp()
    return timestamp
time_str = "2022-02-02 12:12:12.123"
timestamp = convert(time_str)

时间元祖:

索引值(index)  属性(Attribute)(Values)
0   tm_year()  (例如:2015)
1   tm_mon()   1-12
2   tm_mday()  1-31
3   tm_hour()  0-23
4   tm_min()   0-59
5   tm_sec()   0-61(60代表闰秒,61是基于历史原因保留)
6   tm_wday(星期几)    0-6(0表示星期一)
7   tm_yday(一年中的第几天)    1-366
8   tm_isdst(是否为夏令时)    0,1,-1(-1代表夏令时)

二,时间转换图解

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西门一刀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值