最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Python:time模块和calendar模块

    正文概述    2020-09-28   272

    Python:time模块和calendar模块

    time 模块

    今天我们要介绍的是一个会经常用到的模块—— time ,顾名思义,这是一个时间相关的模块。前面我们也介绍过常用模块,比如 os 模块,在使用这些模块前,我们需要先将它导入进来。 time 模块的导入方式如下:

    import time

    先来一个简单的样例吧:

    for i in range(0, 5):
        print(i)
        time.sleep(1)

    打印结果我就不展示了,同学们应该都猜得到。那么 time.sleep(1) 这句话的作用是什么呢?

    sleep() 方法是一个睡眠方法,意思就是程序执行到这里,需要等待一会,什么都不做,上面的代码在执行的时候可以发现,每隔 1s 会打印一个数字, sleep() 里面给出的参数是休眠的时间,单位是秒。

    time 模块的常用方法

    首当其冲当然是获取当前的时间戳。

    print(time.time())

    结果如下:

    1573054874.6483195

    这里就看不懂了哇,我先来解释下什么是时间戳。

    在程序中,一般已1970年1月1日0时0分0秒作为起始时间,时间戳就是从起始时间到现在的时长,在 Python 中,这个时长的单位是秒。那么为什么起始时间是1970年1月1日0时0分0秒呢?

    emmmmmmmmmmmmm,这个我还真不知道,据我所了解的语言,所有的时间戳都是从这个时间点开始起算的。我顺手帮各位同学百度了下,表示并没有找到答案。

    不要纠结这个问题了,我们看下一个。

    print(time.localtime())

    结果如下:

    time.struct_time(tm_year=2019, tm_mon=11, tm_mday=6, tm_hour=23, tm_min=47, tm_sec=13, tm_wday=2, tm_yday=310, 
    tm_isdst=0)

    这个方法会给出详细的当前的本地时间,可以细化到年、月、日、小时、分钟、秒等。

    注意: 这个时间是当前本地的计算的时间哦,如果修改计算机的时间,这个值会发生相应的改变的。

    print(time.mktime(time.localtime()))

    结果如下:

    1573055380.0

    各位同学看着打印结果应该已经猜到了, mktime() 可以将当前的本地时间转化为一个时间戳。

    以上不管是时间戳、还是本地时间,看起来并不方便,下面我们介绍如何格式化时间。

    最简单的方法,可以使用函数 asctime() 。

    print(time.asctime(time.localtime()))

    结果如下:

    Wed Nov  6 23:53:52 2019

    这个结果还带着英文,并不符合中国人的习惯嘛,别急,我们还可以自定义格式。

    print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

    结果如下:

    2019-11-06 23:55:56

    这样看着就舒服多了么,我们可以通过 strftime() 来自定义日期格式。

    这里列举一下日期格式化的符号:

    %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", time.localtime()))

    结果如下:

    2019/11/07 00:02:18

    calendar 模块

    都聊到这里了,我们顺便再聊一个模块,日历。

    先看下代码演示吧,这个就比较有意思了:

    import calendar
    print(calendar.calendar(theyear=2020, w=2, l=1, c=6))

    结果如下:

                                      2020
       January               February              March
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1 2 3 4 5                 1 2                   1
     6 7 8 9 10 11 12       3 4 5 6 7 8 9       2 3 4 5 6 7 8
    13 14 15 16 17 18 19      10 11 12 13 14 15 16       9 10 11 12 13 14 15
    20 21 22 23 24 25 26      17 18 19 20 21 22 23      16 17 18 19 20 21 22
    27 28 29 30 31          24 25 26 27 28 29        23 24 25 26 27 28 29
                                           30 31
        April                 May                  June
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1  2 3 4 5                1 2 3       1 2 3 4 5 6 7
     6 7 8 9 10 11 12       4 5 6 7 8 9 10       8  9 10 11 12 13 14
    13 14 15 16 17 18 19      11 12 13 14 15 16 17      15 16 17 18 19 20 21
    20 21 22 23 24 25 26      18 19 20 21 22 23 24      22 23 24 25 26 27 28
    27 28 29 30            25 26 27 28 29 30 31      29 30
        July                 August              September
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
           1  2  3 4 5                 1  2          1  2  3  4  5 6
     6 7 8 9 10 11 12       3 4 5 6 7 8 9       7 8 9 10 11 12 13
    13 14 15 16 17 18 19      10 11 12 13 14 15 16      14 15 16 17 18 19 20
    20 21 22 23 24 25 26      17 18 19 20 21 22 23      21 22 23 24 25 26 27
    27 28 29 30 31          24 25 26 27 28 29 30      28 29 30
                       31
        October               November             December
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
            1  2  3 4                   1          1 2 3 4 5 6
     5 6 7 8  9 10 11       2  3  4  5  6  7  8       7 8  9 10 11 12 13
    12 13 14 15 16 17 18       9 10 11 12 13 14 15      14 15 16 17 18 19 20
    19 20 21 22 23 24 25      16 17 18 19 20 21 22      21 22 23 24 25 26 27
    26 27 28 29 30 31        23 24 25 26 27 28 29      28 29 30 31
                       30

    我们把 2020 年的日历打印出来了。

    ·w = 每个日期之间的间隔字符数

    ·l = 每周所占用的行数

    ·c = 每个月之间的间隔字符数

    以后我们看日历可以使用这个函数看了。

    要用你们用,反正我是不用,我选择使用这个:

    Python:time模块和calendar模块

    除了直接返回全年的日历,calendar 还支持返回指定月份的日历:

    print(calendar.month(2019, 11))

    结果如下:

      November 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

    我们还可以直接获得某月的总天数:

    print(calendar.monthlen(2019, 11))

    结果如下:

    30

    这个功能好像有点鸡肋,我们获取某月的天数难道不是都靠那句儿歌么?

    一三五七八十腊,三十一天永不差

    我们还可以知道指定的日期对应的星期数:

    print(calendar.weekday(2019, 11, 7))

    结果如下:

    3

    这个我觉得蛮实用的,再也不用自己写算法去推算了。

    众多python培训视频,尽在python学习网,欢迎在线学习!

    本文转自:https://blog.csdn.net/meteor_93/article/details/103078589


    下载网 » Python:time模块和calendar模块

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元