zoukankan      html  css  js  c++  java
  • python学习笔记 day19 常用模块(二)

    time模块

    表示时间有三种表示方式:

      时间戳-----time.time();

     格式化的字符串形式 ------time.strftime();

     结构化的元组----time.localtime()

    time.time(): 时间戳,主要是给计算机看的,从1970年算起到现在过了多少秒;

    import time
    print(time.time())

    运行结果:

    time.strftime()  :格式化的字符串,主要是给人看的

    import time
    print(time.strftime('%Y-%m-%d %H:%M:%S'))    # 按照 %Y-%m-%d %H:%M:%S 这种年月日,时分秒的格式来输出

    运行结果:

     time.localtime(): 结构化的元组,返回的结果有点类似于命名元组(namedtuple)可以通过属性取对应的值

    import time
    struct_time=time.localtime()
    print(struct_time)
    print(struct_time.tm_year)
    print(struct_time.tm_mon)

    运行结果:

     time.time()【时间戳】 time.localtime()【结构化元组】 time.strftime()【格式化字符串】之间的转换:

     1. time.time()-----> time.localtime()

    #时间戳 ---->结构化元组 localtime() 或者gmtime()
    import time
    t=time.time()   # 时间戳
    print(t)  # 1536848749.2373986
    print(time.localtime(t))  # 使用time.localtime()转换为结构化元组struct_time
    print(time.gmtime(1600000000))

    运行结果:

    2. time.localtime()--->time.time()  

    #结构化元组--->时间戳 使用mktime()
    import time
    print(time.localtime())   # 不传参数就是当前的struct_time
    print(time.mktime(time.localtime()))  # 由当前的struct_time 转化为当前的时间戳
    print(time.localtime(1600000000))   #这个时间戳对应的时间其实是2020-9-13
    print(time.mktime(time.localtime(1600000000)))  

    运行结果:

     3. time.localtime()---->time.strftime()  

    # 结构化元组----> 格式字符串
    import time
    struct_time=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(1600000000))   # 时间戳是1600000000先转化为time.localtime() 然后使用strftime()转为格式化字符串
    print(struct_time)  # 时间戳为1600000000对应的格式化字符串时间(格式按照strftime 第一个参数指定的格式转化,第二个参数就是localtime()的时间)

    运行结果:

    4. strftime()---->localtime()

    # 格式化字符串-----> 结构化元组
    import time
    struct_time=time.strptime('1996-04-12','%Y-%m-%d')  # 讲1996-04-12 这个格式化字符串 使用strptime()转为localtime()结构化元组(告诉计算机 1996-04-12 分别对应%Y-%m-%d)
    print(struct_time)

    运行结果:

     5. time. localtime() ----->%a%b%d%H%M%S%Y串  使用csatime()

    import time
    print(time.asctime(time.localtime(1600000000)))  # 时间戳是1600000000对应的localtime(struct_time) 转化为 相应的串
    print(time.asctime(time.localtime()))   # 当前的localtime 结构化时间struct_time

    运行结果:

    6. time.time()---------%a%b%d%H%M%S%Y串 使用 ctime()

    import time
    print(time.ctime(time.time()))  # time.time()表示当前的时间戳 对应转为相应格式的串
    print(time.ctime(1600000000))   # 1600000000 这个制定的时间戳表示2020-9-13 

    运行结果:

    7. 如果有两个时间 计算中间差了多少时间(年月日时分秒格式给出)

    import time
    struct_time1=time.strptime('2018-09-14 09:39:00','%Y-%m-%d %H:%M:%S')   # 把格式化的时间2018-09-14 09:39:00 使用strptime()先转化为localtime()的结构化时间
    struct_time2=time.strptime('2019-08-12 16:23:12','%Y-%m-%d %H:%M:%S')
    time1=time.mktime(struct_time1)  # 把结构化元组 struct_time 使用mktime()转为时间戳 这样才可以进行加减
    time2=time.mktime(struct_time2)
    time_3=time2-time1  # time 仍然是时间戳,需要转为格式化的字符串形式---> 首先时间戳转为结构化元组,再由结构化元组转为格式化的字符串
    print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time_3)))
    print(time_3)

    运行结果:

    这显然不是我想要的结果,把两者的格式化时间先转为结构化元组,然后转为时间戳,相减,可是我再把两者差的时间戳转换回去时,转换的格式化时间都是1970开始的,,,sad.jpg

    直到我看了Eva-J的写法,我简直蠢如猪,计算两者时间戳的差之后,先转为结构化元组,然后我一直试图改变属性.tm_year的值,发现改变不了,所以你就不能字符串格式化输出的时候减一下的嘛,我简直是个魔鬼

    版本二(Eva-J)

    import time
    struct_time1=time.strptime('2018-09-14 09:39:00','%Y-%m-%d %H:%M:%S')   # 把格式化的时间2018-09-14 09:39:00 使用strptime()先转化为localtime()的结构化时间
    struct_time2=time.strptime('2019-08-12 16:23:12','%Y-%m-%d %H:%M:%S')
    time1=time.mktime(struct_time1)  # 把结构化元组 struct_time 使用mktime()转为时间戳 这样才可以进行加减
    time2=time.mktime(struct_time2)
    time_3=time2-time1  # time 仍然是时间戳,需要转为格式化的字符串形式---> 首先时间戳转为结构化元组,再由结构化元组转为格式化的字符串
    # print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time_3)))
    print(time_3)

    运行结果:

    talk is cheap,show me the code
  • 相关阅读:
    Mysql常见索引介绍
    Mysql字段修饰符(约束)
    使用select和show命令查看mysql数据库系统信息
    Mysql5.7数据库介绍
    对Mysql数据表本身进行操作
    各种修改Mysql字符集
    Mysql的安全配置向导命令mysql_secure_installation
    firewalld介绍
    CentOS7使用yum安装mysql5.7
    利用ASP.NET一般处理程序动态生成Web图像(转)
  • 原文地址:https://www.cnblogs.com/xuanxuanlove/p/9643726.html
Copyright © 2011-2022 走看看