zoukankan      html  css  js  c++  java
  • day19 time模块

    时间的表示方式

    有3种表示方式:

    1. 时间戳:给机器看的(float格式)
    2. 格式化的字符串:给人看的(格式化时间)
    3. 元组:计算用的(结构化时间)
    import time
    # 时间戳
    # 返回一个时间戳,表示从 1970.1.1 到现在的秒数
    print(time.time())  # 1553959680.65606
    
    # 字符串时间
    # 字母表示是固定的,但是格式不固定随便改
    print(time.strftime("%Y-%m-%d %H:%M:%S"))   # 2019-03-30 23:44:32
    print(time.strftime("%Y/%m/%d %H:%M:%S"))   # 2019/03/30 23:44:32
    print(time.strftime("%H:%M:%S"))    # 23:44:32
    
    # 结构化时间
    struct_time = time.localtime()
    print(struct_time)  # time.struct_time(tm_year=2019, tm_mon=3, tm_mday=30, tm_hour=23, tm_min=45, tm_sec=54, tm_wday=5, tm_yday=89, tm_isdst=0)
    print(struct_time.tm_year)  # 2019

    时间的转换

      时间戳不能和结构化时间直接转化,只能通过格式化时间进行中介。

      时间戳  -----------localhost/gmtime------------->  结构化时间

      时间戳  <---------mktime----------------------------  结构化时间

    import time
    # 时间戳时间转换成格式化时间
    t = time.time()
    print(t)
    # 转换确定的时间戳可以用 localtime 转换
    print(time.localtime(1553962314))
    # 转换 动态赋值 的 变量 时间可以用 gmtime 转换
    print(time.gmtime(t))
    # 格式化时间转换成 时间戳时间 用 mktime 转换
    print(time.mktime(time.localtime()))
    # 运行结果:
    # 1553962325.1933188
    # time.struct_time(tm_year=2019, tm_mon=3, tm_mday=31, tm_hour=0, tm_min=11, tm_sec=54, tm_wday=6, tm_yday=90, tm_isdst=0)
    # time.struct_time(tm_year=2019, tm_mon=3, tm_mday=30, tm_hour=16, tm_min=12, tm_sec=5, tm_wday=5, tm_yday=89, tm_isdst=0)
    # 1553962325.0

      字符串时间  -----------strptime------------->  结构化时间

      字符串时间  <-----------strftime--------------  结构化时间

    # 将字符串时间转换成 结构化时间 用 strptime 转换 需要指定格式
    print(time.strptime('2000-12.31','%Y-%m.%d'))
        # time.struct_time(tm_year=2000, tm_mon=12, tm_mday=31, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=366, tm_isdst=-1)
    #  将结构化时间转换成 字符串时间 strftime 转换 需要指定格式
    print(time.strftime('%m/%d/%Y %H:%M:%S',time.localtime(3000000000)))    # 01/24/2065 13:20:00

    ps:一些舒服的显示

    # 一些舒服的显示
    print(time.asctime())   # Sun Mar 31 00:24:40 2019
    print(time.asctime(time.localtime(150000000)))  # Thu Oct  3 10:40:00 1974
    print(time.ctime())     # Sun Mar 31 00:26:46 2019
    print(time.ctime(150000000))    # Thu Oct  3 10:40:00 1974

    ps:计算时差:

    # 计算时间差
    true_time = time.mktime(time.strptime('2017-09-11 08:30:00','%Y-%m-%d %H:%M:%S'))
    now_time = time.mktime(time.strptime('2017-09-12 11:00:00','%Y-%m-%d %H:%M:%S'))
    dif_time = now_time - true_time
    struct_time = time.gmtime(dif_time)
    print('过去了%d年%d月%d天%d小时%d分钟%d秒'%(struct_time.tm_year-1970,struct_time.tm_mon-1,
                                                struct_time.tm_mday-1,struct_time.tm_hour,
                                                struct_time.tm_min,struct_time.tm_sec))
    # 过去了0年0月1天2小时30分钟0秒
  • 相关阅读:
    【译】Using .NET for Apache Spark to Analyze Log Data
    边缘缓存模式(Cache-Aside Pattern)
    GUID做主键真的合适吗
    在Java大环境下.NET程序员如何夺得一线生机
    板子
    P1525 关押罪犯 (并查集 / 二分图)| 二分图伪码
    算法学习笔记:匈牙利算法
    POJ
    19级暑假第三场训练赛
    POJ 1011 Sticks​ (DFS + 剪枝)
  • 原文地址:https://www.cnblogs.com/purewhite/p/10629936.html
Copyright © 2011-2022 走看看