zoukankan      html  css  js  c++  java
  • Python 之 时间字符串、时间戳、时间差、任意时间字符串转换时间对象

    1. 时间字符串 --> 时间戳

        1) time 模块

    timestring = '2016-12-21 10:22:56'
    print time.mktime(time.strptime(timestring, '%Y-%m-%d %H:%M:%S')) # 1482286976.0

        time.mktime() 与 time.localtime() 互为还原函数。

        time.mktime(timetuple) :将时间元组转换成时间戳

        time.localtime([timestamp]):将时间戳转会为时间元组

        2) datetime 模块

    在这里没有找到,似乎只有 time 模块能获取时间戳

    2. 时间戳 --> 时间字符串

        1) time 模块

    timestamp = time.time()
    timestruct = time.localtime(timestamp)
    print time.strftime('%Y-%m-%d %H:%M:%S', timestruct) # 2016-12-22 10:49:57

        2) datetime 模块

    import datetime
    timestamp = 1482374997.55
    datetime_struct = datetime.datetime.fromtimestamp(timestamp)
    print datetime_struct.strftime('%Y-%m-%d %H:%M:%S') # 2016-12-22 10:49:57
    
    datetime_struct = datetime.datetime.utcfromtimestamp(timestamp)
    print datetime_struct.strftime('%Y-%m-%d %H:%M:%S') # 2016-12-22 02:49:57

        fromtimestamp(timestamp[, tz]):将时间戳转为当地的时间元组
        utcfromtimestamp(timestamp):将时间戳转为UTC的时间元组。以北京为例:utc时间比北京当地时间少8个小时。

    3. 时间差计算

        1) 几天/周前

    import datetime
    
    now = datetime.datetime.now()
    three_days_ago = now + datetime.timedelta(days=-3)
    three_weeks_ago = now + datetime.timedelta(weeks=-3)
    
    print now # datetime.datetime(2016, 12, 22, 11, 24, 49, 987171)
    print three_days_ago # datetime.datetime(2016, 12, 19, 11, 24, 49, 987171)
    print three_weeks_ago # datetime.datetime(2016, 12, 1, 11, 24, 49, 987171)

        2) 几天/周后

    import datetime
    
    now = datetime.datetime.now()
    three_days_later = now + datetime.timedelta(days=3)
    three_weeks_later = now + datetime.timedelta(weeks=3)
    
    print now # datetime.datetime(2016, 12, 22, 11, 24, 49, 987171)
    print three_days_later # datetime.datetime(2016, 12, 25, 11, 24, 49, 987171)
    print three_weeks_later # datetime.datetime(2017, 1, 12, 11, 24, 49, 987171)

    注意:没有months和years

        3)时间差

    import time
    import datetime
    
    start = datetime.datetime.now()
    time.sleep(30)
    end = datetime.datetime.now()
    
    print (end-start).days # 0 天数
    print (end-start).total_seconds() # 30.029522 精确秒数
    print (end-start).seconds # 30 秒数
    print (end-start).microseconds # 29522 毫秒数

    注意:没有分钟

    4. 任意时间字符串转换时间对象

    import time
    from dateutil import parser
     
    time_string = time.ctime() # 'Thu Dec 22 10:35:25 2016',这里可以是任意的时间格式
    datetime_struct = parser.parse(time_string)
    print type(datetime_struct) # <type 'datetime.datetime'>
    print datetime_struct.strftime('%Y-%m-%d %H:%M:%S') # 2016-12-22 13:58:59
  • 相关阅读:
    BZOJ4269: 再见Xor(线性基)
    Codeforces Round #473 (Div. 2)
    洛谷P3812 【模板】线性基
    CodeChef March Lunchtime 2018 div2
    BZOJ1023: [SHOI2008]cactus仙人掌图(仙人掌dp)
    【Android】Android布局中实现圆角边框
    Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解
    mac OSX上eclipse adb无法识别(调试)小米的解决方案
    IOS回调机制——代理,通知中心以及Block
    长沙国储电脑城-学生买电脑-被坑记
  • 原文地址:https://www.cnblogs.com/liuq/p/6211005.html
Copyright © 2011-2022 走看看