Python使用time模块实现指定时间触发器示例


Posted in Python onMay 18, 2017

本文实例讲述了Python使用time模块实现指定时间触发器。分享给大家供大家参考,具体如下:

其实很简单,指定某个时间让脚本处理一个事件,比如说一个get请求~

任何语言都会有关于时间的各种方法,Python也不例外。

help(time)之后可以知道time有2种时间表示形式:

1、时间戳表示法,即以整型或浮点型表示的是一个以秒为单位的时间间隔。这个时间的基础值是从1970年的1月1号零点开始算起。

2、元组格式表示法,即一种python的数据结构表示。这个元组有9个整型内容。分别表示不同的时间含义。

    year (four digits, e.g. 1998)
    month (1-12)
    day (1-31)
    hours (0-23)
    minutes (0-59)
    seconds (0-59)
    weekday (0-6, Monday is 0)
    Julian day (day in the year, 1-366)
    DST (Daylight Savings Time) flag (-1, 0 or 1) ##夏令时格式,0:表示正常格式,1:表示为夏令时格式,-1:表示根据当前的日期时间格式来判定

time() 或者datetime.now() -- 返回当前时间戳,浮点数形式。不接受参数
clock() -- 返回当前程序的cpu执行时间。unix系统始终返回全部运行时间;而windows从第二次开始都是以第一次调用此函数时的时间戳作为基准,而不是程序开始时间为基准。不接受参数。
sleep() -- 延迟一个时间段,接受整型、浮点型。

gmtime() -- 将时间戳转换为UTC时间元组格式。接受一个浮点型时间戳参数,其默认值为当前时间戳。

localtime() -- 将时间戳转换为本地时间元组格式。接受一个浮点型时间戳参数,其默认值为当前时间戳。

asctime() -- 将时间元组格式转换为字符串形式。接受一个时间元组,其默认值为localtime()返回值

ctime() -- 将时间戳转换为字符串。接受一个时间戳,其默认值为当前时间戳。等价于asctime(localtime(seconds))

mktime() -- 将本地时间元组转换为时间戳。接受一个时间元组,必选。

strftime() -- 将时间元组以指定的格式转换为字符串形式。接受字符串格式化串、时间元组。时间元组为可选,默认为localtime()

strptime() -- 将指定格式的时间字符串解析为时间元组,strftime()的逆向过程。接受字符串,时间格式2个参数,都是必选。

并且其类型还可以做减法操作   然后用total_seconds()可以将某个时间差值转换为s,具体看后续代码部分

示例代码:

import httplib
import time
def doFirst():
  from datetime import datetime, timedelta
  curTime = datetime.now()
  #print curTime
  desTime = curTime.replace(hour=3, minute=0, second=0, microsecond=0)
  #print desTime
  delta = desTime-curTime
  #print delta
  skipSeconds = int(delta.total_seconds())
  #print skipSeconds
  if skipSeconds==0:
    return True
  else:
    if skipSeconds<0:
      skipSeconds+=24*60*60
    print "Must sleep %d seconds" % skipSeconds
    return False
#也可以采取获取当前时间差值然后自己计数,不过考虑误差问题,就不采取了
def getTime():
  from datetime import datetime, timedelta
  curTime = datetime.now()
  #print curTime
  desTime = curTime.replace(hour=3, minute=0, second=0, microsecond=0)
  #print desTime
  delta = desTime-curTime
  #print delta
  skipSeconds = int(delta.total_seconds())
  if skipSeconds<0:
    skipSeconds+=24*60*60
  print skipSeconds
  return skipSeconds
def gethttp():
  url = "URL"
  conn = httplib.HTTPConnection("IP")
  conn.request(method="GET",url=url)
  response = conn.getresponse()
  res= response.read()
  print res
#getTime()
while True:
  if doFirst():
    gethttp()
    time.sleep(24*59*60)
  time.sleep(1)
s.close()

Python使用time模块实现指定时间触发器示例

注:时间字符串支持的格式符号:

格式 含义备注

%a 本地(locale)简化星期名称
%A 本地完整星期名称
%b 本地简化月份名称
%B 本地完整月份名称
%c 本地相应的日期和时间表示
%d 一个月中的第几天(01 - 31)
%H 一天中的第几个小时(24小时制,00 - 23)
%I 第几个小时(12小时制,01 - 12)
%j 一年中的第几天(001 - 366)
%m 月份(01 - 12)
%M 分钟数(00 - 59)
%p 本地am或者pm的相应符
%S 秒(01 - 61)
%U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。
%w 一个星期中的第几天(0 - 6,0是星期天)
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始。
%x 本地相应日期
%X 本地相应时间
%y 去掉世纪的年份(00 - 99)
%Y 完整的年份
%Z 时区的名字(如果不存在为空字符)
%% ‘%'字符

PS:本站还提供了几款关于Unix时间戳转换及日期在线工具,非常实用,提供给大家参考:

Unix时间戳(timestamp)转换工具:
http://tools.3water.com/code/unixtime

在线日期/天数计算器:
http://tools.3water.com/jisuanqi/date_jisuanqi

在线万年历日历:
http://tools.3water.com/bianmin/wannianli

在线阴历/阳历转换工具:
http://tools.3water.com/bianmin/yinli2yangli

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
用Python实现通过哈希算法检测图片重复的教程
Apr 02 Python
python编程开发之textwrap文本样式处理技巧
Nov 13 Python
Python类属性的延迟计算
Oct 22 Python
Python制作豆瓣图片的爬虫
Dec 28 Python
Python获取二维矩阵每列最大值的方法
Apr 03 Python
六行python代码的爱心曲线详解
May 17 Python
TensorFLow 变量命名空间实例
Feb 11 Python
Windows 下python3.8环境安装教程图文详解
Mar 11 Python
django配置app中的静态文件步骤
Mar 27 Python
解决python父线程关闭后子线程不关闭问题
Apr 25 Python
基于Python把网站域名解析成ip地址
May 25 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 Python
Python实现的文本简单可逆加密算法示例
May 18 #Python
Python操作MongoDB详解及实例
May 18 #Python
Python 迭代器与生成器实例详解
May 18 #Python
Python字符串处理实例详解
May 18 #Python
Python进阶-函数默认参数(详解)
May 18 #Python
Python装饰器实现几类验证功能做法实例
May 18 #Python
如何用itertools解决无序排列组合的问题
May 18 #Python
You might like
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
2014/11/03 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
关于PHP定时发送服务的解决办法
2017/04/23 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
javascript document.images实例
2008/05/27 Javascript
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
2017/02/09 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
对node通过fs模块判断文件是否是文件夹的实例讲解
2019/06/10 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
[01:14:41]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第一场 1月8日
2021/03/11 DOTA
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
python安装及变量名介绍详解
2020/12/12 Python
通信工程毕业生自荐信
2013/11/01 职场文书
腾讯广告词
2014/03/19 职场文书
法人授权委托书
2014/09/16 职场文书
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS