zoukankan      html  css  js  c++  java
  • Python 中time,calendar,datatime模块总结

    time:时间

    Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。时间间隔是以秒为单位的浮点小数。每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。Python 的 time 模块下有很多函数可以转换常见日期格式。

    • 时间戳(timestamp):time.time()
      时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。
    import time;  # 引入time模块
    print(time.time())
    '''
    输出:1554878666.5730264
    '''
    
    • 延迟线程的运行:time.sleep(secs)

      推迟调用线程的运行,secs指秒数。

    import time
    print ("延迟开始 : %s" % time.time())
    time.sleep( 5 )
    print ("延迟结束 : %s" % time.time())
    '''
    输出:
    延迟开始 : 1554880195.2101836
    延迟结束 : 1554880200.2106538
    '''
    
    • (指定时间戳下的)当前时区时间:time.localtime([secs])

      接收时间辍(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。

      应用场景 => 通过时间戳,获得该时间戳能反映出的年月日等信息

    import time
    t1 = time.localtime(time.time())
    print ("localtime(): ", t1)
    '''
    输出:
    localtime():  time.struct_time(tm_year=2019, tm_mon=4, tm_mday=10, tm_hour=15, tm_min=14, tm_sec=33, tm_wday=2, tm_yday=100, tm_isdst=0)
    '''
    

    很多Python函数用一个元组装起来的9组数字处理时间:

    序号 字段 属 性 对 应 值
    0 4位数年 tm_year 2008
    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 -1, 0, 1, -1是决定是否为夏令时的旗帜
    • (指定时间戳下的)格林威治时间:time.gmtime([secs])

      接收时间辍(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为0

    import time
    print ("gmtime :", time.gmtime(time.time()))
    '''
    输出:
    gmtime : time.struct_time(tm_year=2019, tm_mon=4, tm_mday=10, tm_hour=7, tm_min=19, tm_sec=46, tm_wday=2, tm_yday=100, tm_isdst=0)
    '''
    
    • (指定时间元组下的)格式化时间:time.strftime(fmt[,tupletime])

      接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。

    import time
    print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
    '''
    输出:
    2019-04-10 15:21:41
    '''
    
    import time
    t = (2020, 4, 10, 10, 19, 22, 2, 200, 0)
    res = time.strftime('%Y-%m-%d %j days', t) 
    # 没有确保数据的安全性,只是将元组信息转化为时间格式的字符串
    print(res)
    '''
    输出:
    2020-04-10 200 days
    '''
    

    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 当前时区的名称
    • %% %号本身

    calendar:日历

    • 判断闰年:calendar.isleap(year)

      是闰年返回True,否则为false。

    import calendar
    print(calendar.isleap(2019))
    '''
    输出:
    False
    '''
    
    • 查看某年某月日历:calendar.month(year, month)

      Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:

    import calendar
    print(calendar.month(2019, 4))
    '''
    输出:
         April 2019
    Mo Tu We Th Fr Sa Su
     1  2  3  4  5  6  7
     8  9 10 11 12 13 14
    15 16 17 18 19 20 21
    22 23 24 25 26 27 28
    29 30
    '''
    
    • 查看某年某月起始星期与当月天数:calendar.monthrange(year, month)

      返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。

    import calendar
    print(calendar.monthrange(2019, 4))
    '''
    输出:
    (0, 30)
    '''
    
    • 查看某年某月某日是星期几:calendar.weekday(year, month, day)

      返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。

    import calendar
    print(calendar.weekday(2018, 8, 8))
    '''
    输出
    2
    '''
    

    datatime:可以运算的时间

    • 当前时间:datetime.datetime.now()

      输出当前的时间

    import datetime
    tm = datetime.datetime.now()
    print(tm, type(tm))
    '''
    输出:
    2018-04-10 15:49:27.706496 <class 'datetime.datetime'>
    '''
    
    • 昨天:datetime.datetime.now() + datetime.timedelta(days= -1)

      可以利用datetime.timedelta对时间进行计算

    import datetime
    tm = datetime.datetime.now()
    day = datetime.timedelta(days=1)
    print(day, type(day))
    # tm与day都是对象,可以直接做运算
    print(tm - day)
    '''
    输出:
    1 day, 0:00:00 <class 'datetime.timedelta'>
    2018-04-09 15:52:55.814921
    '''
    
    • 修改时间:datatime_obj.replace([…])
    import datetime
    tm = datetime.datetime.now()
    print(tm)
    print(tm.replace(year=2200))
    '''
    输出:
    2018-04-10 15:56:26.245580
    2200-04-10 15:56:26.245580
    '''
    
    • 格式化时间戳:datetime.date.fromtimestamp(timestamp)
    import datetime
    print(datetime.date.fromtimestamp(5656565653))
    '''
    输出:
    2149-04-01
    '''
    
  • 相关阅读:
    使用linux将一个服务器上的文件或者文件夹复制黏贴到另一个服务器上
    深度学习之常用linux命令总结
    python 操作MYSQL数据库
    MYSQL登录及常用命令
    mysql数据库可视化工具—Navicat Premium—安装与激活
    Mysql数据库的简单介绍与入门
    java 正则匹配int型
    js设置文本框只能输入数字
    Java数据抓取(一)
    Nodejs的多线程
  • 原文地址:https://www.cnblogs.com/linwow/p/10693783.html
Copyright © 2011-2022 走看看