python 日期和时间

当写了一个script执行时,如果时间很长时,想了解执行过程用了多久,一般用下面的方法

import time

time_start = time.time()

## 

time_end = time.time()

print time_end-time_start

这里显示的时间是秒s。

就此另外了解一下时间,日期的其它用法

>>> time.time()
1477978158.454

这是一个时间戳,看不出具体意思

>>> time.localtime(time.time())
time.struct_time(tm_year=2016, tm_mon=11, tm_mday=1, tm_hour=13, tm_min=37, tm_sec=14, tm_wday=1, tm_yday=306, tm_isdst=0)

localtime()函数可以得到一个时间元组,这个元组中的9组数字,就代表当前时间的各个值。time.localtime() 直接写也可以。

tm_wday是一周的第几日(0是周一)

tm_yday是一年的第几日(1到366)

tm_isdst是否夏令时(-1,0,1  -1是决定是否为夏令时的旗帜)

夏令时:是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。一般在天亮早的夏季人为将时间提前一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏时制的国家具体规定不同。目前全世界有近110个国家每年要实行夏令时。

>>> time.asctime()
'Tue Nov 01 13:46:28 2016'

这个就能得到格式化的日期时间。

除了这个格式化的方法,想自己制定格式化时:

>>> time.strftime("%a %b %d %H",time.localtime())
'Tue Nov 01 13'

提到这里,要说到另一个模块datetime, 其格式化strftime()的用法不一样

>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S %A")
'2016-11-01 13:14:13 Tuesday'

python 时间日期格式化符号有:

%y 2位数的年份

%Y 4位数的年份

%m 月份

%M 分钟

%d 月内中的一天 01-31

%D  没有这个符号

%h 没有这个符号

%I  小时 12时 (这里是大写的i, 不是不写的L)

%H 小时 24时

%s 没有这个符号

%S 秒 00-59

%a  简写的星期几

%A 完整的星期几

%b  简写的月份名  Nov

%B 完整的月份名  November

%c  本地相应的日期表示和时间表示  '11/01/16 14:31:12'

%C  没有这个符号

%j  一年中的第几天

%J  没有这个符号

%p  相当于PM AM 

%P  没有这个符号

%u  没有这个符号

%U  一年中的第几个星期 00-53

>>> time.strftime("%U",time.localtime())
'44'

%w  星期(0-6),星期天为星期的开始  (是以星期天为开始的星期内的第几天)

>>> time.strftime("%w",time.localtime())
'2'

%W 一年中的星期数(00-53)星期一为星期的开始  与%U对应

>>> time.strftime("%W",time.localtime())
'44'

%x  本地日期表示  '11/01/16'

%X 本地时间表示 '14:38:26'

%z  当前时区的名称  'China Standard Time'

%Z 当前时区的名称  'China Standard Time'

 

time模块重要的函数:

time.sleep(secs)  推迟调用线程的运行

time.clock( )  用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。

这里有个容易错误的地方:

  在第一次调用的时候,返回的是程序运行的实际时间;
    以第二次之后的调用,返回的是自第一次调用后,到这次调用的时间间隔

 所以不用像time.time()一样做减法了。

posted @ 2016-11-01 14:44  guohuino2  阅读(335)  评论(0编辑  收藏  举报