#!/usr/bin/python #coding:utf8 # 在应用程序的开发过程中,难免要跟日期、时间处理打交道。 # 如:记录一个复杂算法的执行时间;网络通信中数据包的延迟等等。 # Python中提供了time, datetime calendar等模块来处理时间日期, # 今天对time模块中最常用的几个函数作一个介绍。 # 导入时间模块 import time # time.time()函数返回的是从1970年1月1日以来的秒数,这是一个浮点型小数 #—————————————————————————————————————————————————————————————————— yesterday time.time() - 86400 #代表昨天数这个时候的时间 today = time.time() #代表今天的时间 tomorrow = time.time() + 86400 #带表明天的时间 #out1> 1382686284.44 #out2> 1382772684.44 #out3> 1382859084.44 #—————————————————————————————————————————————————————————————————— #time.sleep()一般用再进程方面,主要做用挂起当前进程,表示睡眠的时间, # 是以秒做单位的 #—————————————————————————————————————————————————————————————————— time.sleep(2) print '两秒后执行打印' #间隔两秒执行 out> 两秒后执行打印 #—————————————————————————————————————————————————————————————————— # time.clock()返回第一次调用该方法到现在的秒数,其精确度高于1微秒。可 # 以使用该函数来记录程序执行的时间。下面是一个简单的例子: #—————————————————————————————————————————————————————————————————— print time.clock() #初始clock时间 time.sleep(2) print time.clock() #距离初始值得时间2秒 date_time = time.clock() time.sleep(3) print time.clock() #距离初始值得时间5秒 print time.clock() - date_time #表示中间的时间 # out1 > 6.39362683277e-07 # out2 > 2.01080107349 # out3 > 5.02091962732 # out4 > 3.00097215096 #—————————————————————————————————————————————————————————————————— # time.gmtime()该函数的模型是time.gmtime([sec]),sec表示从1970-1-1以来的秒数, # 其中默认值为time.time(),函数返回值习time.struct_time类型的对象( # struct_time是在time模块中定义的表示时间的对象), #—————————————————————————————————————————————————————————————————— print time.gmtime() #获取当时的时间,并返回时间的对象(struct_time) print time.gmtime(time.time() - 24*60*60) #表示昨天当时的时间 #out1 > time.struct_time(tm_year=2013, tm_mon=10, tm_mday=26, tm_hour=8, tm_min=0, tm_sec=9, tm_wday=5, tm_yday=299, tm_isdst=0) #out2 > time.struct_time(tm_year=2013, tm_mon=10, tm_mday=25, tm_hour=8, tm_min=0, tm_sec=9, tm_wday=4, tm_yday=298, tm_isdst=0) #—————————————————————————————————————————————————————————————————— # time.localtime()这个函数与time.gmtime()函数非常相似,也返回一个struct_time对象, # 可以吧time.localtime看做time.gmtime的一个本地化操作 #—————————————————————————————————————————————————————————————————— print time.localtime() #out > time.struct_time(tm_year=2013, tm_mon=10, tm_mday=26, tm_hour=8, tm_min=0, tm_sec=9, tm_wday=5, tm_yday=299, tm_isdst=0) #—————————————————————————————————————————————————————————————————— # time.mktime()执行是与time.gmtime()和time.localtime()相反的操作,他接受的struct_time对象 # 返回用的浮点型表示的秒数 #—————————————————————————————————————————————————————————————————— print time.mktime(time.localtime()) print time.mktime(time.gmtime()) print time.time() # out1 > 1382774990.0 # out2 > 1382746190.0 # out3 > 1382774990.14 #—————————————————————————————————————————————————————————————————— # time.strftime()将日期转换为字符串表示,它的函数原型为:time.strftime(format[, t])。 # 参数format是格式字符串(格式字符串的知识可以参考:time.strftime), # 可选的参数t是一个struct_time对象。下面的例子将struct_time对象转换为字符串表示: #—————————————————————————————————————————————————————————————————— print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()) #输出当地是时间的日期 print time.strftime('%Y') #获取年份 print time.strftime('%H') #获取小时的时间 #out 1> 2013-10-26 16:15:16 #out 2> 2013 #out 3> 16 #—————————————————————————————————————————————————————————————————— # time.strptime()按指定格式解析一个表示时间的字符串,返回struct_time对象。 # 该函数原型为:time.strptime(string, format),两个参数都是字符串, # 下面是一个简单的例子,演示将一个字符串解析为一个struct_time对象: #—————————————————————————————————————————————————————————————————— print time.strptime('2009-06-23 15:30:53', '%Y-%m-%d %H:%M:%S') #返回struct_time对象 print time.strptime('2009', '%Y') #如果只是给年份的,器他的参数将会表示为出的值 #out 1> time.struct_time(tm_year=2009, tm_mon=6, tm_mday=23, tm_hour=15, tm_min=30, tm_sec=53, tm_wday=1, tm_yday=174, tm_isdst=-1) #out 2> time.struct_time(tm_year=2009, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=-1) #—————————————————————————————————————————————————————————————————— # time.ctime()也是是以个浮点型的秒数转化为时间字符串 #—————————————————————————————————————————————————————————————————— d_time = time.time() print time.ctime(d_time) #输出的格式与 '2013-10-26 16:29:30' 这个不一样 # out > Sat Oct 26 17:06:11 2013 #—————————————————————————————————————————————————————————————————— # time.asctime()获取当前的时间以简化方式显示(可选参数struct_time对象) #—————————————————————————————————————————————————————————————————— print time.asctime(time.localtime()) #参数可选 print time.asctime() # out 1> Sat Oct 26 17:24:46 2013 # out 2> Sat Oct 26 17:24:46 2013 #—————————————————————————————————————————————————————————————————— #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # %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 当前时区的名称 # %% %号本身 # 下面是一个练习, #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # 练习1(日期的转化成秒) #—————————————————————————————————————————————————————————————————— d_time = '2013-10-26 16:29:30' # 首先将时间格式的转分分struct_time对象( 运用time.strptime()方法 ) d_obj = time.strptime(d_time,'%Y-%m-%d %H:%M:%S') #注意格式要对应 #在的用time.mktime()模块将struct_time的对象转化为秒数 s_time = time.mktime(d_obj) print s_time # out 1> 1382776170.0 #—————————————————————————————————————————————————————————————————— time.gmtime() 与 time.localtime()的不同:
>>> time.strftime('%Y%m%d %H:%M:%S',time.gmtime(time.time())) '20131202 03:00:24' >>> time.strftime('%Y%m%d %H:%M:%S',time.localtime(time.time())) '20131202 11:00:27' 两个获取字符串的时间相差(4个小时)
python time模块学习
最新推荐文章于 2022-09-09 13:50:29 发布