python之时间模块 time

时间模块

简介

  • Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。

    时间间隔是以秒为单位的浮点小数。

    每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。

    #常用方法
    1.time.sleep(sesc)
    #(线程)推迟指定的时间运行,单位为秒
    2.time.time()
    # 获取当前时间戳(开始为1970年1月1日伦敦时间 结束为现在)
    

time模块

  • 介绍: time模块是最原始的时间模块,可以在获取数据的基础上进行各种操作,还有一个datetime模块,是在time模块的基础上有了更好的功能

  • 表示时间的三种方式

    • 时间戳(timestamp): 通常来说,时间戳表示的是伦敦时间自1970年1月1日00:00:00开始计算的时间偏移量,运行type(time.time)返回的一个float类型

    • 结构化时间(struct_time): struct_time在python中是一个元组,元组中共有9个元素(分别是,年,月,日,时,分,秒,一年中第几周,一年中第几天,已经是否夏令时)

      索引(Index属性(Attribute)值(Values)
      0tm_year(年)比如2011
      1tm_mon(月)1 - 12
      2tm_mday(日)1 - 31
      3tm_hour(时)0 - 23
      4tm_min(分)0 - 59
      5tm_sec(秒)0 - 60
      6tm_wday(weekday)0 - 6(0表示周一)
      7tm_yday(一年中的第几天)1 - 366
      8tm_isdst(是否是夏令时)默认为0
    • 格式化时间(string_format_time):全称字符串格式化时间,常说的人容易读懂的时间,常用的格式一般为"1999-09-19 13:14:33"(’%Y-%m-%d %H:%M:%S’)

      格式化方法含义
      %y两位数的年份表示(00-99)
      %Y四位数的年份表示(000-9999)
      %m月份(01-12)
      %d月中的一天(0-31)
      %H24小时制的小时数(0-23)
      %I12小时制的小时数(01-12)
      %M分钟数(00-59)
      %S秒(00-59)
      %a本地简化星期名称(Mon)
      %A本地完整星期名称(Monday)
      %b本地简化的月份名称(Aug)
      %B本地完整的月份名称(August)
      %c本地相应的日期表示和时间表示(Mon Aug 12 15:59:54 2019)外国人比较爱用
      %j年内的一天(001-366)
      %p本地A.M.或P.M.的等价符
      %U一年中的星期数(00-53)星期天为星期的开始
      %w星期(0-6),星期1为星期的开始
      %W一年中的星期数(00-53)星期一为星期的开始
      %x本地相应的日期表示
      %X本地相应的时间表示
      %Z当前时区的名称
      %%%本身
  • 三种格式转换图
    在这里插入图片描述

    # 时间戳转结构化时间
    # time.gmtime(时间戳)  # UTC时间,与应该伦敦当前时间一致
    stmap_time = 1233345666
    struct_t = time.gmtime(stmap_time)
    #结果 time.struct_time(tm_year=2009, tm_mon=1, tm_mday=30, tm_hour=20, tm_min=1, tm_sec=6, tm_wday=4, tm_yday=30, tm_isdst=0)
    
    # time.localtime(时间戳) # 当地时间。例如:在北京执行该方法,与UTC相差8小时,UTC时间+8 = 北京时间
    struct_t = time.localtime(stmap_time)
    #结果 time.struct_time(tm_year=2009, tm_mon=1, tm_mday=31, tm_hour=4, tm_min=1, tm_sec=6, tm_wday=5, tm_yday=31, tm_isdst=0)
     
    # 结构化转时间戳
    sturc = time.mktime(结构化时间)
    #结果 1565601587.0
    
    # 格式化时间 -->结构化
    结构化时间 = time.strptime(格式化时间,'%Y-%m-%d %H:%M:%S')
    
    # 结构化 --> 格式化时间 
    格式化时间 = time.strftime(结构化时间,格式)
    

datetime模块

  • 简介:在time模块基础上进行更加丰富的功能

  • 导入

    from datetime import datetime
    
  • datetime操作

    # 创造datetime数据
    datetime.now() 获取当前本地的datetime时间
    # 获取UTC时间
    b=datetime.utcnow()
    # 结果 2019-08-12 17:25:52.475986
    
    # 创建一个指定的时间
    datetime(2017,8,9,11,22,33)
    # 结果 2017-08-09 11:22:33
    
    # str类型  --> datetime
    # datetime时间 = datetime.strptime(字符串,格式)
    now = datetime.strptime('2017-08-09 11:22:33', '%Y-%m-%d %H:%M:%S')
    # 结果 2017-08-09 11:22:33
    
    # datetime --> str时间
    # str时间 = dt.strftime(格式)
    now = now.strftime('%Y-%m-%d %H:%M:%S')
    
  • 练习:
  • 将以下字符串转换成datetime类型

    ‘2017/9/30’
    ‘2017年9月30日星期六’
    ‘2017年9月30日星期六8时42分24秒’
    ‘9/30/2017’
    '9/30/2017 8:42:50 ’

    # '2017/9/30'
    str_time = datetime.strptime('2017/9/30','%Y/%m/%d')
    print(str_time)
    # 结果 2017-09-30 00:00:00
    
    # '2017年9月30日星期六'
    str_time = datetime.strptime('2017年9月30日星期六', '%Y年%m月%d日星期六')
    print(str_time)
    # 结果 2017-09-30 00:00:00
    
    # 9/30/2017
    str_time = datetime.strptime('9/30/2017', '%m/%d/%Y')
    print(str_time)
    # 结果 2017-09-30 00:00:00
    
    # 9/30/2017 8:42:50 
    str_time = datetime.strptime('9/30/2017 8:42:50 ', '%m/%d/%Y %H:%M:%S ')
    print(str_time)
    #2017-09-30 08:42:50
    
  • 将以下datetime类型转换成字符串
    Saturday, September 30, 2017
    9/30/2017 9:22:17 AM
    September 30, 2017

    # Saturday, September 30, 2017
    studect_t = datetime(2017,9,28,10,3,43)
    print(studect_t.strftime('%A, %B %d, %Y'))
    
    # 09/28/2017 10: 03: 43 AM
    studect_t = datetime(2017, 9, 28, 10, 3, 43)
    print(studect_t.strftime('%m/%d/%Y %H: %M: %S %p'))
    
    # September 30, 2017
    studect_t = datetime(2017, 9, 28, 10, 3, 43)
    print(studect_t.strftime('%B %d ,%Y'))
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值