说说Python标准库之time模块的常用方法

一.列举常用的Python标准库:

    OS操作系统;time时间;random随机;pymysql连接数据库;threading线程;multiprocessing进程;queue队列。

二.第三方库:

    Django;Flask;requests;virtualenv;selenium;scrapy;xadmin;celery;re;hashlib;md5。

三.常用的科学计算库:

    Numpy,Scipy,Pandas

四.time模块常用方法

    1.追溯time模块源码,里面包含11种方法,如下所示:

      import time

  The Epoch is system-defined; on Unix, it is generally January 1st, 1970.

    time() -- return current time in seconds since the Epoch as a float

    clock() -- return CPU time since process start as a float

    sleep() -- delay for a number of seconds given as a float

    gmtime() -- convert seconds since Epoch to UTC tuple

    localtime() -- convert seconds since Epoch to local time tuple

    asctime() -- convert time tuple to string

    ctime() -- convert time in seconds to string

    mktime() -- convert local time tuple to seconds since Epoch

    strftime() -- convert time tuple to string according to format specification

    strptime() -- parse string to time tuple according to format specification

    tzset() -- change the local timezone

    2. 上面一堆英文,想必有些朋友看到会思绪凌乱,不过别慌,现在一一解释,如下:

      Epoch:指的是一个特定的时间:1970-01-01 00:00:00 UTC

      UTC:协调世界时,又称世界统一时间、世界标准时间、国际协调时间;中国大陆、中国香港、中国澳门、中国台湾、蒙古                   国、新加坡、马来西亚、菲律宾、西澳大利亚州的时间与UTC的时差均为+8,也就是UTC+8。

      UNIX:Unix时间戳(英文为Unix time, POSIX time 或 Unix timestamp)是从Epoch(1970年1月1日00:00:00 UTC)开始所                    经过的秒数,不考虑闰秒

      In [2]: time.time()
      Out[2]: 1531753784.4076538

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

      time.clock(),以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时。这个需要注意,在不同的系统上含义不          同。在UNIX系统上,它返回的是"进程时间",它是用秒表示的浮点数(时间戳)。而在WINDOWS中,第一次调用,返回的        是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。

      time.sleep(),线程推迟指定的时间后运行。单位为秒。

      time.gmtime(),是将一个时间戳转换为UTC时区(0时区)的struct_time,元组的形式体现。

     In [5]: time.gmtime()
  Out[5]: time.struct_time(tm_year=2018, tm_mon=7, tm_mday=16, tm_hour=15, tm_min=50, tm_sec=36, tm_wday=0,   tm_yday=197, tm_isdst=0)

      time.localtime(),将一个时间戳转换为当前时区的struct_time,即当前时间,同样以元组形式体现。

      In [6]: time.localtime()
  Out[6]: time.struct_time(tm_year=2018, tm_mon=7, tm_mday=16, tm_hour=23, tm_min=53, tm_sec=40, tm_wday=0, tm_yday=197, tm_isdst=0)

      time.asctime(),把一个表示时间的对象(元组或者struct_time)表示为以下字符串形式。不传参数的话,默认为当前时间。

      In [7]: time.asctime()
     Out[7]: 'Mon Jul 16 23:56:51 2018'

     time.ctime(),把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未指定,将会默认time.time()为参           数。

     In [8]: time.ctime()
     Out[8]: 'Tue Jul 17 00:02:01 2018'

     In [9]: time.ctime(time.time())
     Out[9]: 'Tue Jul 17 00:02:15 2018'

     time.mktime(),将一个时间对象(struct_time,元组形式)转化为时间戳。

     In [10]: time.mktime(time.localtime())
     Out[10]: 1531757173.0

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

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

    3.下面我列举个案例,来体现时间模块的几个应用

      本案例以统计网站的月新增人数为需求,进行如下逻辑处理,仅供参考:

      # 月新增人数的统计

      mon_count = 0

      # tm_year=2018, tm_mon=7, tm_mday=4,

       t = time.localtime()

      # 获取当前的1号的日期字符串

      mon_begin_date_str = '%d-%02d-01' % (t.tm_year,t.tm_mon)

      # 把日期字符串转成日期对象

      mon_begin_date = datetime.strptime(mon_begin_date_str,'%Y-%m-%d')

      # 查询数据库,用户的注册时间大于当前日期

      try:

               mon_count = User.query.filter(User.is_admin==False,User.create_time>mon_begin_date).count()

      except Exception as e:

               current_app.logger.error(e)

               return jsonify(errno=RET.DBERR,errmsg='查询月人数异常')

 

      


 

 

                           

 

 

 

    

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值