• time模块


    一、简介

    1.在python中通常有这几种方式表示时间:

      1) 时间戳

          2) 格式化的时间字符串

          3) 时间元组(struct_time)共九个元素

    2. UTC亦即格林威治时间,世界标准时间。在中国为 UTC+8。

    3. 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。返回时间戳方式的函数主要有time()等。

    4.时间元组(struct_time)方式:struct_time共有9个元素,返回struct_time的主要函数有gmtime(),localtime(),strptime()。如下:

      

     二、时间函数

    import time

    1. time.time()  返回当前时间的时间戳

    t = time.time()
    print(t)
    
    # 输出
    1495016507.4327872
    

      

    2. time.localtime() 将一个时间戳转换为当前时区的struct_time。secs参数未提供,则以当前时间为准

    t1 = time.localtime()
    print(t1)
    
    #输出
    time.struct_time(tm_year=2017, tm_mon=5, tm_mday=17, tm_hour=18, tm_min=22, tm_sec=54, tm_wday=2, tm_yday=137, tm_isdst=0)
    

      

    3.time.gmtime() 和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time。

    t3 = time.gmtime()
    print(t3)
    
    # 输出
    time.struct_time(tm_year=2017, tm_mon=5, tm_mday=17, tm_hour=10, tm_min=22, tm_sec=54, tm_wday=2, tm_yday=137, tm_isdst=0)
    

      可以看到 tm_hour 和 上面的相差了8个小时

    4. time.mktime() 将一个struct_time转化为时间戳。

    print(time.mktime(t1))
    
    # 输出
    1495016896.0
    

    5.time.asctime() 把一个表示时间的元组或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。如果没有参数,将会将time.localtime()作为参数传入。

    print(time.asctime())
    
    # 输出
    Wed May 17 19:09:05 2017
    

     

    6. time.ctime() 同上

    7.time.strftime(format,t) 

    把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。如果元组中任何一个元素越界,ValueError的错误将会被抛出。

    t = time.localtime()
    print(t)
    
    print(time.strftime("%Y-%m-%d %X", t))
    
    # 输出
    
    time.struct_time(tm_year=2017, tm_mon=5, tm_mday=17, tm_hour=19, tm_min=16, tm_sec=4, tm_wday=2, tm_yday=137, tm_isdst=0)
    2017-05-17 19:16:04
    

      

    8.time.strptime(string[, format]):把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。

    t = "2017-05-16 17:23:12"
    
    print(time.strptime(t, "%Y-%m-%d %H:%M:%S"))
    
    # 输出
    time.struct_time(tm_year=2017, tm_mon=5, tm_mday=16, tm_hour=17, tm_min=23, tm_sec=12, tm_wday=1, tm_yday=136, tm_isdst=-1)
    

      

    三、时间转换

    1. 格式化字符串 --- 时间戳

    import time
    print("格式化字符串".center(20, '-'))
    t = "2017-05-16 17:23:12"
    print(t)
    print("时间元组".center(20, '-'))
    t1 = time.strptime(t, "%Y-%m-%d %H:%M:%S")
    print(t1)
    print("时间戳".center(20, '-'))
    t2 = time.mktime(t1)
    print(t2)
    
    # 输出
    -------格式化字符串-------
    2017-05-16 17:23:12
    --------时间元组--------
    time.struct_time(tm_year=2017, tm_mon=5, tm_mday=16, tm_hour=17, tm_min=23, tm_sec=12, tm_wday=1, tm_yday=136, tm_isdst=-1)
    --------时间戳---------
    1494926592.0
    

      

     2. 时间戳 --- 格式化字符串

    import time
    print("时间戳".center(20, '-'))
    t = time.time()
    print(t)
    
    print("时间元组".center(20, '-'))
    t1 = time.localtime(t)    # 如果此处用 time.gmtime()则生成的时间元组会和本地时间有一个UTC时间差
    print(t1)
    
    print("格式化字符串".center(20, '-'))
    t2 = time.strftime("%Y-%m-%d %X", t1)
    print(t2)
    
    # 输出
    
    --------时间戳---------
    1495020952.5951612
    --------时间元组--------
    time.struct_time(tm_year=2017, tm_mon=5, tm_mday=17, tm_hour=19, tm_min=35, tm_sec=52, tm_wday=2, tm_yday=137, tm_isdst=0)
    -------格式化字符串-------
    2017-05-17 19:35:52
    

      

    四、datetime模块

    1. datetime.datetime.now()

    返回当前时间,格式如:2017-07-04 19:33:38.821027

    import datetime
    
    t = datetime.datetime.now()
    print(t)
    
    #输出
    2017-07-04 19:33:38.821027
    

     

     2、datetime.date.fromtimestamp()

    时间戳转换为日期格式

    import time
    import datetime
    
    t = time.time()
    print(t)
    
    format_t = datetime.date.fromtimestamp(t)
    print(format_t)
    
    #输出
    1499168293.3212767
    2017-07-04
    

      

     3、datetime.timedelta()

    对某个时间进行加减

    >>> import datetime
    #当前时间加3天
    >>> t1 = datetime.datetime.now()  + datetime.timedelta(days=3)
    >>> print(t1)
    2017-04-03 10:42:50.714910
    #当前时间减3天
    >>> t1 = datetime.datetime.now()  - datetime.timedelta(days=3)
    >>> print(t1)
    2017-03-28 10:43:17.260111
    #当前时间减3天
    >>> t1 = datetime.datetime.now()  + datetime.timedelta(days=-3)
    >>> print(t1)
    2017-03-28 10:43:35.758742
    #当前时间加3个小时
    >>> t1 = datetime.datetime.now()  + datetime.timedelta(hours=3)
    >>> print(t1)
    2017-03-31 13:44:24.805354
    #当前时间加30分钟
    >>> t1 = datetime.datetime.now()  + datetime.timedelta(minutes=30)
    >>> print(t1)
    2017-03-31 11:14:55.990195
    

      

  • 相关阅读:
    HomeBrew安装MongoDB如何启动
    Express + Mongoose 极简入门
    Express + Mongoose 极简入门
    浅谈 PHP 与手机 APP 开发(API 接口开发)
    浅谈 PHP 与手机 APP 开发(API 接口开发)
    统计与分布之伯努利分布与二项分布
    统计分布之泊松分布
    统计与分布之高斯分布
    Python 2 和 3 的区别及兼容技巧
    组合与排列
  • 原文地址:https://www.cnblogs.com/bigberg/p/6869246.html
Copyright © 2020-2023  润新知