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从入门到精通(DAY 2)
Dec 20 Python
Python 含参构造函数实例详解
May 25 Python
用python写扫雷游戏实例代码分享
May 27 Python
在django中图片上传的格式校验及大小方法
Jul 28 Python
python批量图片处理简单示例
Aug 06 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
Dec 06 Python
Python scrapy增量爬取实例及实现过程解析
Dec 24 Python
pytorch中的自定义数据处理详解
Jan 06 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
Feb 24 Python
Python使用ElementTree美化XML格式的操作
Mar 06 Python
全网最全python库selenium自动化使用详细教程
Jan 12 Python
Python安装使用Scrapy框架
Apr 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二维/三维数组转字符串
2013/09/13 PHP
ThinkPHP3.1新特性之Action参数绑定
2014/06/19 PHP
PHP exif扩展方法开启详解
2014/07/28 PHP
10个实用的PHP正则表达式汇总
2014/10/23 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
利用laravel+ajax实现文件上传功能方法示例
2017/08/13 PHP
JavaScript 字符编码规则
2009/05/04 Javascript
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
node.js中的http.response.getHeader方法使用说明
2014/12/14 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
jQuery仿Flash上下翻动的中英文导航菜单实例
2015/03/10 Javascript
jQuery实现自定义checkbox和radio样式
2015/07/13 Javascript
jquery遍历标签中自定义的属性方法
2016/09/17 Javascript
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
2016/12/02 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
js神秘的电报密码 哈弗曼编码实现
2019/09/10 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
Django权限机制实现代码详解
2018/02/05 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
基于python3监控服务器状态进行邮件报警
2019/10/19 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
代理班主任的自我评价
2014/02/04 职场文书
学生社团文化节开幕式主持词
2014/03/28 职场文书
临床医学专业求职信
2014/08/08 职场文书
企业挂职心得体会
2014/09/10 职场文书
上课迟到检讨书范文
2015/05/06 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
银行安全保卫工作总结
2015/08/10 职场文书