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之从if开始语句的征程
Sep 14 Python
Python random模块常用方法
Nov 03 Python
Python 描述符(Descriptor)入门
Nov 20 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
Dec 19 Python
python 输出所有大小写字母的方法
Jan 02 Python
Django工程的分层结构详解
Jul 18 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
Feb 07 Python
python程序文件扩展名知识点详解
Feb 27 Python
基于python 等频分箱qcut问题的解决
Mar 03 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
Jul 03 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 Python
整理Python中常用的conda命令操作
Jun 15 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 empty函数判断mysql表单是否为空
2010/04/12 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
php操作csv文件代码实例汇总
2014/09/22 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
JavaScript 指导方针
2007/04/05 Javascript
js 编写规范
2010/03/03 Javascript
JS无限树状列表实现代码
2011/01/11 Javascript
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
javascript string字符串优化问题
2011/07/31 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
原生JS实现图片懒加载(lazyload)实例
2017/06/13 Javascript
详解vue-router2.0动态路由获取参数
2017/06/14 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
Python使用CMD模块更优雅的运行脚本
2015/05/11 Python
python中__slots__用法实例
2015/06/04 Python
python检测主机的连通性并记录到文件的实例
2018/06/21 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
2018/12/20 Python
Xadmin+rules实现多选行权限方式(级联效果)
2020/04/07 Python
HTML5中的autofocus(自动聚焦)属性介绍
2014/04/23 HTML / CSS
利用HTML5中的Canvas绘制一张笑脸的教程
2015/05/07 HTML / CSS
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
毕业生自荐信
2013/12/14 职场文书
写给女朋友的检讨书
2014/01/28 职场文书
黄河象教学反思
2014/02/10 职场文书
交通文明倡议书
2014/05/16 职场文书
三八妇女节致辞
2015/07/31 职场文书
如何理解及使用Python闭包
2021/06/01 Python
CSS3实现指纹特效代码
2022/03/17 HTML / CSS
解决 Redis 秒杀超卖场景的高并发
2022/04/12 Redis