zxg588 发表于 2015-4-20 12:07:25

python 中的时间模块time

  在Django的学习过程中的时间处理过程中遇到了strftime函数,于是结合《python cookbook》和python docs 对time模块中常用的一些操作和函数做了一点总结和归纳。


[*]time.time()
  
  代表了从特定时间点,也被称作纪元(epoch:[英] [?i:p?k] [美] [??p?k, ?i?pɑk] )开始所经历的秒数,是一个看起来不够直观的浮点数,这个时间根据不同的平台有所不同,一般为1970年1月1日午夜。例:




>>> import time

>>> time.time()
1299080804.953

>>> print time.asctime(time.gmtime(0))
Thu Jan 01 00:00:00 1970

[*]time.gmtime(),time.localtime()
  time.gmtime将任何时间戳(参数secs所代表的秒数)转化为一个元组,该元组为GMT(格林威治标准时),亦即UTC(世界标准时间)。也可以传递一个时间戳(从纪元开始经历的秒数)给time.localtime,会根据当前时区进行时间转化。




>>> time.gmtime(0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
>>> time.localtime(0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

[*]time.asctime()
  将struct_time转换为一个由24字符组成的字符串(24-character string),格式如:
  




Thu Mar 03 00:16:04 2011

[*]time.strftime(format[, t])
  将一个元组(tuple)或者struct_time类,即参数t,转换为指定格式的字符串


[*]time.striptime(string[, format])
  跟time.strftime相反的操作,解析给定的字符串并返回一个struct_time类。例:





>>> from time import strftime, gmtime

>>> strftime("%a %d %b %Y%H:%M:%S")
'Thu 03 Mar 201100:29:41'
>>> strftime("%a %d %b %Y%H:%M:%S", gmtime())
'Wed 02 Mar 201116:30:09'
>>> time.strptime("30 Feb 11", "%d %b %y")
...
ValueError: day is out of range for month
>>> time.strptime("28 Feb 11", "%d %b %y")
time.struct_time(tm_year=2011, tm_mon=2, tm_mday=28, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=59, tm_isdst=-1)

[*]time.sleep(secs)
   可以实现在python程序中的延时,单位为秒,并支持浮点数非整数秒的延时。例:




>>> for i in range(3):
    time.sleep(2.5)
    print "hello world!"
   
hello world!
hello world!
hello world!
>>>
  
附一:struct_time




IndexAttributeValues




0
tm_year
(for example, 1993)


1
tm_mon
range


2
tm_mday
range


3
tm_hour
range


4
tm_min
range


5
tm_sec
range ; see (1) in strftime()description


6
tm_wday
range , Monday is 0


7
tm_yday
range


8
tm_isdst
0, 1 or -1; see below


  附二:directives can be embedded in the format string




DirectiveMeaningNotes




%a
Locale’s abbreviated weekday name.



%A
Locale’s full weekday name.



%b
Locale’s abbreviated month name.



%B
Locale’s full month name.



%c
Locale’s appropriate date and time representation.



%d
Day of the month as a decimal number .



%H
Hour (24-hour clock) as a decimal number .



%I
Hour (12-hour clock) as a decimal number .



%j
Day of the year as a decimal number .



%m
Month as a decimal number .



%M
Minute as a decimal number .



%p
Locale’s equivalent of either AM or PM.
(1)


%S
Second as a decimal number .
(2)


%U
Week number of the year (Sunday as the first day of the week) as a decimal number . All days in a new year preceding the first Sunday are considered to be in week 0.
(3)


%w
Weekday as a decimal number .



%W
Week number of the year (Monday as the first day of the week) as a decimal number . All days in a new year preceding the first Monday are considered to be in week 0.
(3)


%x
Locale’s appropriate date representation.



%X
Locale’s appropriate time representation.



%y
Year without century as a decimal number .



%Y
Year with century as a decimal number.



%Z
Time zone name (no characters if no time zone exists).



%%
A literal '%' character.


  
  参考:1. python cookbook
        2. docs:http://docs.python.org/library/time.html#time.struct_time
页: [1]
查看完整版本: python 中的时间模块time