python time模块用法,python time模块函数

发布时间:2020-01-06编辑:脚本学堂
本文介绍了python time模块的用法,python time模块常用函数,time模块的几个小例子,不了解的朋友参考下。

一、python/timemokuai/ target=_blank class=infotextkey>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) 是否是夏令时

二、time模块函数介绍
1.asctime()
asctime([tuple]) -> string:将一个struct_time(默认为当时时间),转换成字符串
 

>>> time.asctime()
'Sat Feb 12 16:02:55 2011'

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

3.sleep(...)
sleep(seconds):可以通过调用time.sleep来挂起当前的进程。time.sleep接收一个浮点型参数,表示进程挂起的时间

4.ctime(...)
ctime(seconds) -> string:将一个时间戳(默认为当前时间)转换成一个时间字符串

例如:
 

>>> time.ctime()
'Sat Nov 14 22:43:31 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参数未输入,则以当前时间为转换标准
 

>>> t=time.time()
>>> time.gmtime(t)
(2011, 2, 12, 8, 13, 56, 5, 43, 0)

6.localtime(...)
time.localtime与time.gmtime非常类似,也返回一个struct_time对象,可以把它看作是gmtime()的本地化版本。
 

>>> time.localtime()
(2011, 2, 12, 16, 14, 27, 5, 43, 0)

7.mktime(...)
mktime(tuple) -> floating point number:time.mktime执行与gmtime(), localtime()相反的操作,它接收struct_time对象作为参数,返回用秒数来表示时间的浮点数
 

>>> t=time.localtime()
>>> t
(2011, 2, 12, 16, 15, 42, 5, 43, 0)
>>> time.mktime(t)
1297498542.0

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 当前时区的名称
%% %号本身
 

>>> print time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())
2011-02-12 08:17:40
>>> print time.strftime('Weekday: %w; Day of the yesr: %j')
Weekday: 6; Day of the yesr: 043 

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
 

>>> print time.strptime('2009-06-23 15:30:53', '%Y-%m-%d %H:%M:%S') 
(2009, 6, 23, 15, 30, 53, 1, 174, -1)
 

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

>>> t=time.time()
>>> t
1297498791.3916249
>>> t/60//60/24/365
41.143378995433793
 

三、time模块的例子
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"))
>>> print b
1238250264.0
 

python的time模块的主要功能:获取时钟时间和cpu处理器运行的时间,以及时间格式的转换。
time.time()返回当前系统时间距离1970-01-01 00:00多少秒
    >>> time.time()
    1356871542.263558
    >>>
time.clock()返回该程序到目前为止cpu运行的时间
    >>> time.clock()
    0.31
time.sleep()使程序停止的秒数(此时间不记录cpu运行时间)
time.localtime()转换秒显示时间为一个tuple,默认是当前时间
 

    >>> time.localtime()
    time.struct_time(tm_year=2012, tm_mon=12, tm_mday=30, tm_hour=20, tm_min=50, tm_sec=46, tm_wday=6, tm_yday=365, tm_isdst=0)
    >>> tm=time.localtime()
    >>> tm.tm_year
    2012
    >>> time.localtime(1)
    time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0)
    >>>
 

time.ctime()与time.localtime()类似,只不过会转换时间为一个字符串,默认也是当前时间
  

  >>> time.ctime()
    'Sun Dec 30 20:55:19 2012'
    >>> time.ctime(1)
    'Thu Jan 1 08:00:01 1970'
    >>>
 

time.mkdtime()与time.localtime()正好相反
  

  >>> time.mktime(time.localtime())
    1356872879.0
    >>> time.time()
    1356872885.819205
    >>>
 

time.strftime()格式化输出时间格式
   

>>> time.strftime('%Y-%M-%d %H:%m:%S',time.localtime())
    '2012-24-30 21:12:27'
    %% a literal %
           %a locale's abbreviated weekday name (e.g., Sun)
           %A locale's full weekday name (e.g., Sunday)
           %b locale's abbreviated month name (e.g., Jan)
           %B locale's full month name (e.g., January)
           %c locale's date and time (e.g., Thu Mar 3 23:05:25 2005)
           %C century; like %Y, except omit last two digits (e.g., 20)
           %d day of month (e.g., 01)
           %D date; same as %m/%d/%y
           %e day of month, space padded; same as %_d
           %F full date; same as %Y-%m-%d
           %g last two digits of year of ISO week number (see %G)
           %G year of ISO week number (see %V); normally useful only with %V
           %h same as %b
           %H hour (00..23)
           %I hour (01..12)
           %j day of year (001..366)
           %k hour, space padded ( 0..23); same as %_H
           %l hour, space padded ( 1..12); same as %_I
           %m month (01..12)
           %M minute (00..59)
           %n a newline

           %p locale's equivalent of either AM or PM; blank if not known
           %P like %p, but lower case
           %r locale
 

time.strptime()将时间转换成元组模式

代码:
 

>>> print time.strptime('2012-12-12','%Y-%m-%d')
time.struct_time(tm_year=2012, tm_mon=12, tm_mday=12, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=347, tm_isdst=-1)