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 用户登录验证的小例子
Mar 06 Python
python对字典进行排序实例
Sep 25 Python
在Python的Tornado框架中实现简单的在线代理的教程
May 02 Python
关于Python中异常(Exception)的汇总
Jan 18 Python
利用python爬取斗鱼app中照片方法实例
Dec 03 Python
python使用pil库实现图片合成实例代码
Jan 20 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
Dec 12 Python
django用户登录验证的完整示例代码
Jul 21 Python
Python获取时间范围内日期列表和周列表的函数
Aug 05 Python
Python实现随机取一个矩阵数组的某几行
Nov 26 Python
PyTorch的torch.cat用法
Jun 28 Python
Python如何截图保存的三种方法(小结)
Sep 01 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
如何去掉文章里的 html 语法
2006/10/09 PHP
php数组合并的二种方法
2014/03/21 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
2015/12/18 PHP
php 5.4 全新的代码复用Trait详解
2017/01/05 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
Jquery Ajax的Get方式时需要注意URL地方
2011/04/07 Javascript
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
jquery Mobile入门—外部链接切换示例代码
2013/01/08 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
2013/10/29 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
2014/09/09 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
深入理解Promise.all
2018/08/08 Javascript
JS中比Switch...Case更优雅的多条件判断写法
2019/09/05 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
js删除对象中的某一个字段的方法实现
2021/01/11 Javascript
python实现文件路径和url相互转换的方法
2015/07/06 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
python实现串口通信的示例代码
2020/02/10 Python
Python多分支if语句的使用
2020/09/03 Python
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
致跳远运动员加油稿
2014/02/11 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
高温慰问简报
2015/07/21 职场文书
合同范本之电脑出租
2019/08/13 职场文书
导游词之江南周庄
2019/12/06 职场文书
科普 | 业余无线电知识-波段篇
2022/02/18 无线电
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android
使用Apache Camel表达REST服务的方法
2022/06/10 Servers