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()一样做减法了。