python标准库------time模块详解

time模块 - - -时间获取和转换

在我们学习time模块之前需要对以下的概念进行了解:

  • 时间戳:时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数.
    Python中获取时间的常用方法是,先得到时间戳,再将其转换成想要的时间格式。

  • UTC(Coordinated Universal Time,世界协调时):协调世界时,又称世界统一时间、世界标准时间、国际协调时间,在我国为UTC+8。

  • 元组struct_time:日期、时间是包含许多变量的,所以在Python中定义了一个元组struct_time将所有这些变量组合在一起,包括:4位数年、月、日、小时、分钟、秒等。

    所有变量及要求如下:

字段
tm_year(年)1970
tm_mon(月)1~12
tm_mday(日)1~31
tm_hour(时)0~23
tm_min(分)0~59
tm_sec(秒)0~61 (60或61 是闰秒)
tm_wday(星期几)0-6(0表示星期一)
tm_yday(一年中的第几天)1-366
tm_isdst(是否为夏令时)0,1,-1(-1代表夏令时)
  • 结构化时间:

    time.localtime()
    time.gmtime()世界标准时间(格林尼治时间)
    结构化时间转成时间戳:time.mktime(time.localtime())

    结构化时间转成字符串时间:time.strftime(’%Y-%m-%d %X’,time.localtime())

    字符串时间转成结构化时间:time.strptime(‘2017:05:07:19:47:36’,’%Y-%m-%d %X’)

time模块常用的内置函数

  • time.time()
    说明:
      返回当前时间的时间戳(1970元年后的浮点秒数)

    实例

    >>>import time
    >>>time.time()
    1554557435.836778
    
  • time.sleep(secs)
    说明:
      推迟调用程序的运行,secs的单位是秒

实例:

```
>>>import time 
>>>start_time = time.time()
>>>time.sleep(5)
>>>end_time = time.time()
>>>print(start_time-end_time)
-5.000690221786499

```
  • time.gmtime([secs])
    说明:
    和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time。

    实例:

     >>>import time
     >>>a = time.time()
     >>> time.gmtime(a)
     time.struct_time(tm_year=2019, tm_mon=4, tm_mday=6, tm_hour=13, tm_min=45, tm_sec=3, tm_wday=5, tm_yday=96, tm_isdst=0)
    

    默认调用time.time()

    >>>import time
    >>>time.gmtime()
    time.struct_time(tm_year=2019, tm_mon=4, tm_mday=6, tm_hour=13, tm_min=45, tm_sec=3, tm_wday=5, tm_yday=96, tm_isdst=0)
    
    >>>time.gmtime(33)
    time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=33, tm_wday=3, tm_yday=1, tm_isdst=0)
    
  • time.localtime([secs])
    说明:
      将一个时间戳转换为当前时区的struct_time。secs参数未提供,则以当前时间为准。

    实例:

    >>>import time
    >>>a = time.time()
    >>>time.localtime(a)
    time.struct_time(tm_year=2019, tm_mon=4, tm_mday=6, tm_hour=22, tm_min=10, tm_sec=5, tm_wday=5, tm_yday=96, tm_isdst=0)
    

    默认调用time.time()

    >>>import time
    >>>time.localtime()
    time.struct_time(tm_year=2019, tm_mon=4, tm_mday=6, tm_hour=14, tm_min=23, tm_sec=9, tm_wday=5, tm_yday=96, tm_isdst=0)
    >>>time.localtime(55)
    time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=55, tm_wday=3, tm_yday=1, tm_isdst=0)
    
  • time.mktime(t)
    说明:
    将一个struct_time转化为时间戳。
    实例:

    >>>import time
    >>>a = time.localtime()
    >>>time.mktime(a)
    1554561470.0
    
  • time.asctime (t)
    说明:
    把一个表示时间的元组或者struct_time表示为这种形式:‘Sun Jun 20 23:21:05 1993’。如果没有参数,将会将time.localtime()作为参数传入。

    实例:

    当没有参数的时候默认将time.localtime()传入

    >>>import time
    >>>time.asctime()
    'Sat Apr  6 22:44:41 2019'
    >>>a = time.localtime()
    >>>time.asctime(a)
    'Sat Apr  6 22:47:25 2019'
    

    当传入的参数为时间元组的时候

    >>>import time
    >>>time.asctime((2019, 4, 6, 22, 54, 19, 134860,0,0))
    'Sat Apr  6 22:54:19 2019'
    
  • time.ctime([secs])
    说明:
    把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。

    实例:

    >>>import time
    >>>time.ctime()
    'Sat Apr  6 23:04:14 2019'
    >>>time.ctime(time.time())
    'Sat Apr  6 23:05:07 2019'
    
  • time.struct_time()
    说明:
    接收一个时间元组,返回一个struct_time()的对象

    实例:

    >>>import time
    >>>time.struct_time((2019, 4, 6, 32, 10, 19, 134860,0,0))
    time.struct_time(tm_year=2019, tm_mon=4, tm_mday=6, tm_hour=32, tm_min=10, tm_sec=19, tm_wday=134860, tm_yday=0, tm_isdst=0)
    
  • time.strftime(format [, t])
    说明:

    • 返回字符串表示的当地时间。
    • 把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串,格式由参数format决定。如果未指定,将传入time.localtime()。如果元组中任何一个元素越界,就会抛出ValueError的异常。函数返回的是一个可读表示的本地时间的字符串。

    参数:
    format:格式化字符串
    t :可选的参数是一个struct_time对象

时间字符串支持的格式符号:(区分大小写):

%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时区的名字(如果是本地时间,返回空字符串)
%%‘%’字符

实例:

通过函数将struct_time转成格式字符串

>>>import time
>>>a = time.localtime()
>>>time.strftime("%Y-%m-%d %H:%M:%S",a)
'2019-04-07 22:13:38'

如果不传入struct_time参数则默认返回当前的时间格式化字符串

>>>import time
>>>time.strftime("%Y-%m-%d")
'2019-04-07'

手动拼接显示字符串时间

>>>import time
>>>str(time.localtime().tm_year)+"年"+str(time.localtime().tm_mon)+"月"+str(time.localtime().tm_mday)+"日"
'2019年4月7日'
  • time.strptime(string[,format])
    说明:

    • 将格式字符串转化成struct_time
    • 该函数是time.strftime()函数的逆操作。time strptime() 函数根据指定的格式把一个时间字符串解析为时间元组。所以函数返回的是struct_time对象。

    参数:

    • string :时间字符串
    • format:格式化字符串

    将字符串的时间转换成strcut_time对象

>>>import time
>>>str_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
>>>time.strptime(str_time,"%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=7, tm_hour=22, tm_min=28, tm_sec=28, tm_wday=6, tm_yday=97, tm_isdst=-1)
上面只是介绍了一些常用函数的用法,如果大家还想了解更多,可以去Python官网查看
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值