zoukankan      html  css  js  c++  java
  • Python之Time模块

    time模块是我最早接触到的模块,像time.sleep(x)在测试脚本中随处可见,但是time模块下其他方法呢?我们一起看一下。

    Python中一般用这3种方式表示时间:

    • 1.时间戳
    • 2.时间元组
    • 3.格式化的时间字符

    时间戳

    1. time.time()

    print(time.time())
    >>>1553676761.0610485

    得到的时间单位是秒,这是从1970年1月1日0点0分0秒开始计时,一直到现在经历的秒数。为什么是1970?因为这一年发生了很多大事,比如Unix诞生了。

    2. time.mktime(time.localtime())

    print(time.mktime(time.localtime()))
    >>>1553676761.0

    time.mktime()可以把得到的元组转化成时间戳。

    时间元组

    1. time.localtime()

    print(time.localtime(time.time()))
    
    >>>time.struct_time(tm_year=2019, tm_mon=3, tm_mday=27, tm_hour=16, tm_min=52, tm_sec=41, tm_wday=2, tm_yday=86, tm_isdst=0)
    
    print(time.localtime())
    
    >>>time.struct_time(tm_year=2019, tm_mon=3, tm_mday=27, tm_hour=16, tm_min=52, tm_sec=41, tm_wday=2, tm_yday=86, tm_isdst=0)

    这里得到的是一个元组,两个print得到的结果是一样的,说明localtime中有一个默认参数time.time()

    2. time.gmtime()

    print(time.gmtime())
    
    >>> time.struct_time(tm_year=2019, tm_mon=3, tm_mday=27, tm_hour=8, tm_min=52, tm_sec=41, tm_wday=2, tm_yday=86, tm_isdst=0)

    gmtime和localtime的用法是一样的,但仔细一看发现tm_hour少8,这是什么原因呢?因为我所在的中国位于东8区,gmtime获取的时间是零度经线的时间localtime带上了当前时区。

    3. time.strptime()

    print(time.strptime('2019-03-21 14:57:45','%Y-%m-%d %X'))
    
    >>>time.struct_time(tm_year=2019, tm_mon=3, tm_mday=21, tm_hour=14, tm_min=57, tm_sec=45, tm_wday=3, tm_yday=80, tm_isdst=-1)

    trptime和strftime作用是相反的,注意格式要和输入的格式化字符串一致,不然就会报错了,format默认为:"%a %b %d %H:%M:%S %Y"。

    时间字符串

    1. time.asctime()

    print(time.asctime())
    
    >>>Wed Mar 27 16:52:41 2019
    
    print(time.asctime(time.localtime()))
    
    >>>Wed Mar 27 16:52:41 2019

    time.asctime()可以把时间元组转化成一个固定格式的字符串,默认参数就time.localtime()拿到的元组。

    2. time.ctime()

    print(time.ctime())
    
    >>>Thu Mar 21 14:53:36 2019
    
    print(time.ctime(time.time()))
    
    >>>Thu Mar 21 14:53:36 2019

    ctime和asctime拿到的结果一样,但是参数是时间戳,默认就是time.time()

    3. time.strftime()

    可以按一定的规则,将时间元组转化成格式化字符串形式,如果没有时间元组参数,就默认为localtime。

    print(time.strftime('%Y-%m-%d %H:%M:%S'))
    
    >>>2019-03-27 15:00:50
    
    print(time.strftime('%Y-%m-%d %X'))
    
    >>>2019-03-27 15:00:50

    4. time.strptime()

    将时间字符串转成时间元组,请查看时间元组那块的解释

    总结:

    上面三种时间的转化关系如下图:

  • 相关阅读:
    重新整理 .net core 实践篇————配置系统之盟约[五]
    重新整理 .net core 实践篇————依赖注入应用之援军[四]
    重新整理 .net core 实践篇————依赖注入应用之生命法则[三]
    重新整理 .net core 实践篇————依赖注入应用[二]
    重新整理 .net core 实践篇————配置应用[一]
    spring cloud 学习笔记 客户端(本地)均衡负载(三)
    Leetcode之插入区间
    Leetcode之两棵二叉搜索树中的所有元素
    Leetcode之二叉树的层序遍历
    LeetCode之验证二叉搜索树
  • 原文地址:https://www.cnblogs.com/Sandy-1128/p/python-sandy-0327.html
Copyright © 2011-2022 走看看