zoukankan      html  css  js  c++  java
  • 三种时间格式的转换

    一 时间元组

    1. 时间元组和时间戳的互化

    import time,datetime
    # 获取当前时间的时间元组
    t = time.localtime()
    print(t)
    # 时间元组转时间戳
    timestamp = time.mktime(t)
    print(timestamp)
    # time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=23, tm_min=15, tm_sec=41, tm_wday=2, tm_yday=296, tm_isdst=0)
    # 1571843741.0
    
    # 获取时间戳
    ts = time.time()
    # 时间戳转时间元组
    # 方法一
    print('法一:',time.localtime(ts))
    # 方法二
    print('法二:',time.gmtime(ts))
    # 两种方法的区别只有小时的输出不同,法一的小时是24小时制的,法二是12小时的
    # time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=23, tm_min=10, tm_sec=14, tm_wday=2, tm_yday=296, tm_isdst=0)
    # time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=15, tm_min=10, tm_sec=14, tm_wday=2, tm_yday=296, tm_isdst=0)
    View Code

    2. 时间元组和字符串的互化

    import time
    # 字符串转时间元组
    # 字符类型的时间
    t1 = '2013-10-10 23:40:00'
    # 转为时间元组,时间元组本身没有直接的用处,但它可以输出时间的年月日时分秒等
    # 注意这里的字符串除了%Y %m %d %H %M %S分别代表字符串中的年月日时分秒,
    # 这里的格式必须和字符串一模一样,由于字符串中间有空格,它也不能少
    timeArray = time.strptime(t1, "%Y-%m-%d %H:%M:%S")
    print('并没有直接的用处:', timeArray)
    print('输出年:', timeArray.tm_year)
    print('输出月:', timeArray.tm_mon)
    print('输出日:', timeArray.tm_mday)
    print('输出时:', timeArray.tm_hour)
    print('输出分:', timeArray.tm_min)
    print('输出秒:', timeArray.tm_sec)
    # 当用%Y时表示的是年份的全称,当用%y时表示简称,
    # 月份和小时没有这种用法,它们只用小写,时分秒的貌似只用大写
    t2 = '19/09/05 22/16'
    timeArray = time.strptime(t2, "%y/%m/%d %H/%M")
    print(timeArray)
    # 并没有直接的用处: time.struct_time(tm_year=2013, tm_mon=10, tm_mday=10, tm_hour=23, tm_min=40, tm_sec=0, tm_wday=3, tm_yday=283, tm_isdst=-1)
    # 输出年: 2013
    # 输出月: 10
    # 输出日: 10
    # 输出时: 23
    # 输出分: 40
    # 输出秒: 0
    # time.struct_time(tm_year=2019, tm_mon=9, tm_mday=5, tm_hour=22, tm_min=16, tm_sec=0, tm_wday=3, tm_yday=248, tm_isdst=-1)
    
    # 时间元组转字符串
    ts = time.strftime("%Y/%m/%d %H:%M:%S", timeArray)
    print(ts)
    # 2019/09/05 22:16:00
    View Code

    二 字符串与时间戳

    字符串与时间戳不能直接转化,要通过时间元组来完成,时间元组是中介.

    转化图:

    参考:https://www.cnblogs.com/dongxixi/p/11020633.html

              https://blog.csdn.net/p9bl5bxp/article/details/54945920

    三 时间的加减用法

    时间元组不能加减,要用datetime格式的时间才能加减.下面是字符串转为datetime后,进行时间加减运算.

    import datetime
    start = '2019-07-28 00:00:08'
    end = '2019-07-29 00:50:03'
    # 先将字符串转化为时间格式
    a = datetime.datetime.strptime(start, "%Y-%m-%d %H:%M:%S")
    b = datetime.datetime.strptime(end, "%Y-%m-%d %H:%M:%S")
    print(a,b)
    # 只能直接计算秒和天,其它的不能
    # seconds获得的秒只是时间差中的小时、分钟和秒部分的和,并没有包含时间差的天数
    print((b-a).seconds)
    # total_seconds来获取准确的时间差,并将时间差转换为秒
    print((b-a).total_seconds())
    # 如果不够一天,会输出0
    print((b-a).days)
    # 时间相加
    c = a + datetime.timedelta(hours=5,seconds=68)
    d = a - datetime.timedelta(days=69,minutes=89)
    print(c,d)
    # 2019-07-28 00:00:08 2019-07-29 00:50:03
    # 2995
    # 89395.0
    # 1
    # 2019-07-28 05:01:16 2019-05-19 22:31:08
    View Code

    ttt

  • 相关阅读:
    【mybatis】02-spring集成
    【Spring】xxAware
    【性能调优】Arthas
    【算法】其他算法(字典树Trie等)
    【多线程】JDK源码类图
    POJ-1251-Jungle Roads
    Prim算法模板
    敌兵布阵-线段树(1)
    hdu-1541-Stars (树状数组)
    母牛生小牛
  • 原文地址:https://www.cnblogs.com/xxswkl/p/11729672.html
Copyright © 2011-2022 走看看