python time模块用法实例详解


Posted in Python onSeptember 11, 2014

本文详细讲述了python的内嵌time模块的用法。分享给大家供大家参考之用。具体分析如下:
 
一、简介

time模块提供各种操作时间的函数

说明:一般有两种表示时间的方式:

第一种是时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的

第二种以数组的形式表示即(struct_time),共有九个元素,分别表示,同一个时间戳的struct_time会因为时区不同而不同

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) 是否是夏令时
If the DST flag is 0, the time is given in the regular time zone;
if it is 1, the time is given in the DST time zone;
if it is -1, mktime() should guess based on the date and time.
   
二、函数介绍

1.asctime()

asctime([tuple]) -> string
将一个struct_time(默认为当时时间),转换成字符串
Convert a time tuple to a string, e.g. 'Sat Jun 06 16:26:11 1998'.
When the time tuple is not present, current time as returned by localtime()
is used.
       
2.clock()

clock() -> floating point number
该函数有两个功能,
在第一次调用的时候,返回的是程序运行的实际时间;
以第二次之后的调用,返回的是自第一次调用后,到这次调用的时间间隔

示例:

import time 
if __name__ == '__main__': 
  time.sleep(1) 
  print "clock1:%s" % time.clock() 
  time.sleep(1) 
  print "clock2:%s" % time.clock() 
  time.sleep(1) 
  print "clock3:%s" % time.clock()

输出:

clock1:3.35238137808e-006
clock2:1.00004944763
clock3:2.00012040636

其中第一个clock输出的是程序运行时间
第二、三个clock输出的都是与第一个clock的时间间隔
 
3.sleep(...)

sleep(seconds)
线程推迟指定的时间运行,经过测试,单位为秒,但是在帮助文档中有以下这样一句话,这关是看不懂
“The argument may be a floating point number for subsecond precision.”

4.ctime(...)

ctime(seconds) -> string
将一个时间戳(默认为当前时间)转换成一个时间字符串
例如:
time.ctime()
输出为:'Sat Mar 28 22:24:24 2009'
       
5.gmtime(...)

gmtime([seconds]) -> (tm_year, tm_mon, tm_day, tm_hour, tm_min,tm_sec, tm_wday, tm_yday, tm_isdst)

将一个时间戳转换成一个UTC时区(0时区)的struct_time,如果seconds参数未输入,则以当前时间为转换标准

6.localtime(...)

localtime([seconds]) -> (tm_year,tm_mon,tm_day,tm_hour,tm_min,tm_sec,tm_wday,tm_yday,tm_isdst)

将一个时间戳转换成一个当前时区的struct_time,如果seconds参数未输入,则以当前时间为转换标准

7.mktime(...)

mktime(tuple) -> floating point number
将一个以struct_time转换为时间戳
       
8.strftime(...)

strftime(format[, tuple]) -> string
将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)

%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身 
   
9.strptime(...)

strptime(string, format) -> struct_time

将时间字符串根据指定的格式化符转换成数组形式的时间
例如:
2009-03-20 11:45:39  对应的格式化字符串为:%Y-%m-%d %H:%M:%S
Sat Mar 28 22:24:24 2009 对应的格式化字符串为:%a %b %d %H:%M:%S %Y
   
10.time(...)

time() -> floating point number
返回当前时间的时间戳

三、疑点

1.夏令时

在struct_time中,夏令时好像没有用,例如
a = (2009, 6, 28, 23, 8, 34, 5, 87, 1)
b = (2009, 6, 28, 23, 8, 34, 5, 87, 0)
a和b分别表示的是夏令时和标准时间,它们之间转换为时间戳应该相关3600,但是转换后输出都为646585714.0
 
四、小应用

1.python获取当前时间

time.time() 获取当前时间戳
time.localtime() 当前时间的struct_time形式
time.ctime() 当前时间的字符串形式
  
2.python格式化字符串 

格式化成2009-03-20 11:45:39形式

time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

格式化成Sat Mar 28 22:24:24 2009形式

time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())

 
3.将格式字符串转换为时间戳

a = "Sat Mar 28 22:24:24 2009"
b = time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))

相信本文所述对大家的Python程序设计有一定的借鉴价值。

Python 相关文章推荐
python抓取京东价格分析京东商品价格走势
Jan 09 Python
Python获取单个程序CPU使用情况趋势图
Mar 10 Python
使用Python实现BT种子和磁力链接的相互转换
Nov 09 Python
Python查看微信撤回消息代码
Jun 07 Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
Django之模型层多表操作的实现
Jan 08 Python
解决Pycharm界面的子窗口不见了的问题
Jan 17 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
python读取并写入mat文件的方法
Jul 12 Python
python文件操作的简单方法总结
Nov 07 Python
Python自动化测试笔试面试题精选
Mar 12 Python
python+mysql实现简单的web程序
Sep 11 #Python
一个超级简单的python web程序
Sep 11 #Python
python的Template使用指南
Sep 11 #Python
Python基础之函数用法实例详解
Sep 10 #Python
Python迭代用法实例教程
Sep 08 #Python
Python切片用法实例教程
Sep 08 #Python
Python常用模块用法分析
Sep 08 #Python
You might like
php中spl_autoload详解
2014/10/17 PHP
简单谈谈favicon
2015/06/10 PHP
PHP自定义函数实现数组比较功能示例
2017/10/19 PHP
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
JavaScript 实现类的多种方法实例
2013/05/01 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
JS实现读取xml内容并输出到div中的方法示例
2018/04/19 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
vue+axios 拦截器实现统一token的案例
2020/09/11 Javascript
[00:16]热血竞技场
2019/03/06 DOTA
python实现的防DDoS脚本
2011/02/08 Python
python逆向入门教程
2018/01/15 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
python+mysql实现教务管理系统
2019/02/20 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
Python各种扩展名区别点整理
2020/02/27 Python
canvas绘图按照contain或者cover方式适配并居中显示
2019/02/18 HTML / CSS
阿玛尼化妆品美国官网:Giorgio Armani Beauty
2017/02/02 全球购物
斐乐美国官方网站:FILA美国
2019/03/01 全球购物
迟到检讨书800字
2014/01/13 职场文书
如何撰写岗位职责
2014/02/01 职场文书
多媒体教室标语
2014/06/26 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
煤矿安全保证书
2015/02/27 职场文书
十二生肖观后感
2015/06/12 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
2022/08/14 Servers