时间间隔是以秒为单位的浮点小数。
每个时间戳都以自从 1970 年 1 月 1 日午夜(历元)经过了多长时间来表示。
Python 的 time 模块下有很多函数可以转换常见日期格式。如函数 time.time() 用于获取当前时间戳, 如下实例:
#!/usr/bin/python3
import
time
# 引入time模块
ticks
=
time
.
time
(
)
print
(
"当前时间戳为:"
,
ticks
)
以上实例输出结果:
当前时间戳为: 1459996086.7115328 时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。很多Python函数用一个元组装起来的9组数字处理时间:
04位数年2008 1月1 到 12 2日1到31 3小时0到23 4分钟0到59 5秒0到61 (60或61 是闰秒) 6一周的第几日0到6 (0是周一) 7一年的第几日1到366 (儒略历) 8夏令时-1, 0, 1, -1是决定是否为夏令时的标识上述也就是 struct_time 元组。这种结构具有如下属性:
序号属性值 0tm_year2008 1tm_mon1 到 12 2tm_mday1 到 31 3tm_hour0 到 23 4tm_min0 到 59 5tm_sec0 到 61 (60或61 是闰秒) 6tm_wday0 到 6 (0是周一) 7tm_yday一年中的第几天,1 到 366 8tm_isdst是否为夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。
#!/usr/bin/python3 import time localtime = time.localtime(time.time()) print ("本地时间为 :", localtime)以上实例输出结果:
本地时间为 : time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=28, tm_sec=49, tm_wday=3, tm_yday=98, tm_isdst=0)你可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():
#!/usr/bin/python3 import time localtime = time.asctime( time.localtime(time.time()) ) print ("本地时间为 :", localtime)以上实例输出结果:
本地时间为 : Thu Apr 7 10:29:13 2016我们可以使用 time 模块的 strftime 方法来格式化日期:
time.strftime(format[, t]) #!/usr/bin/python3以上实例输出结果:
2016-04-07 10:29:46 Thu Apr 07 10:29:46 2016 1459175064.0python中时间日期格式化符号:
Calendar 模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:
#!/usr/bin/python3以上实例输出结果:
以下输出2016年1月份的日历: January 2016 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Time 模块包含了以下内置函数,既有时间处理的,也有转换时间格式的:
序号函数及描述实例 1time.altzone以下实例展示了 altzone()函数的使用方法:
>>> import time >>> print ("time.altzone %d " % time.altzone) time.altzone -28800 2time.asctime([tupletime])以下实例展示了 asctime()函数的使用方法:
>>> import time >>> t = time.localtime() >>> print ("time.asctime(t): %s " % time.asctime(t)) time.asctime(t): Thu Apr 7 10:36:20 2016 3 time.clock()由于该方法依赖操作系统,在 Python 3.3 以后不被推荐,而在 3.8 版本中被移除,需使用下列两个函数替代。
time.perf_counter() # 返回系统运行时间 time.process_time() # 返回进程运行时间4time.ctime([secs])
以下实例展示了 ctime()函数的使用方法:
>>> import time >>> print ("time.ctime() : %s" % time.ctime()) time.ctime() : Thu Apr 7 10:51:58 2016 5time.gmtime([secs])以下实例展示了 gmtime()函数的使用方法:
>>> import time >>> print ("gmtime :", time.gmtime(1455508609.34375)) gmtime : time.struct_time(tm_year=2016, tm_mon=2, tm_mday=15, tm_hour=3, tm_min=56, tm_sec=49, tm_wday=0, tm_yday=46, tm_isdst=0) 6time.localtime([secs]以下实例展示了 localtime()函数的使用方法:
>>> import time >>> print ("localtime(): ", time.localtime(1455508609.34375)) localtime(): time.struct_time(tm_year=2016, tm_mon=2, tm_mday=15, tm_hour=11, tm_min=56, tm_sec=49, tm_wday=0, tm_yday=46, tm_isdst=0) 7 time.mktime(tupletime)以下实例展示了 sleep()函数的使用方法:
#!/usr/bin/python3 import time print ("Start : %s" % time.ctime()) time.sleep( 5 ) print ("End : %s" % time.ctime()) 9time.strftime(fmt[,tupletime])以下实例展示了 strftime()函数的使用方法:
>>> import time >>> print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) 2016-04-07 11:18:05 10time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')以下实例展示了 strptime()函数的使用方法:
>>> import time >>> struct_time = time.strptime("30 Nov 00", "%d %b %y") >>> print ("返回元组: ", struct_time) 返回元组: time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1) 11time.time( )以下实例展示了 time()函数的使用方法:
>>> import time >>> print(time.time()) 1459999336.1963577 12 time.tzset()此模块的函数都是日历相关的,例如打印某月的字符月历。
星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()函数。模块包含了以下内置函数:
序号函数及描述 1 calendar.calendar(year,w=2,l=1,c=6)是闰年返回 True,否则为 False。
>>> import calendar >>> print(calendar.isleap(2000)) >>> print(calendar.isleap(1900)) False4 calendar.leapdays(y1,y2)
返回两个整数。第一个是该月的星期几,第二个是该月有几天。星期几是从0(星期一)到 6(星期日)。
>>> import calendar >>> calendar.monthrange(2014, 11) (5, 30)
(5, 30)解释:5 表示 2014 年 11 月份的第一天是周六,30 表示 2014 年 11 月份总共有 30 天。
8 calendar.prcal(year, w=0, l=0, c=6, m=3)测试输出:
-----------执行开始---------- 24 %[************->......................................]1.24s