time模块(提供时间处理和各种时间格式之间的转换)
calendar模块
datetime模块 Python处理时间和时间的标准库
获取时间戳(获取的时间戳数据是从1970后开始计算并且以秒为单位,所以通过时间戳来获取当前的时间要在后面加上1970)
下面是一段来获取以年为单位的时间戳获取具体时间的代码:
import time # 一定要记得加入时间包
result = time.time() # 获取当前的时间戳,这个时间戳是在1970年后以秒为单位显示的
result = result/(24*60*60*365) + 1970 # 通过除以每年内的秒数再加上1970来获取当前的年份
print(result)
获取时间元组(获取的时间默认是当前时间)
下面同样用一段代码来展示时间元组的具体操作
import time
result = time.localtime() #获取时间元组,前提必须加入时间包,参数默认时当前时间,也可以通过时间戳转化为对应时间。
print(result)
利用时间戳和时间元组来获取格式化时间
时间戳:先获取当前时间戳再调用ctime()方法进行格式化
时间元组:先获取时间元组再调用asctime(time_tuple)来进行格式化
import time
t = time.time()
result = time.ctime() # 利用时间戳来获取格式化时间。
print(result)
time_tuple = time.localtime()
result = time.asctime(time_tuple) # 利用时间元组来获取格式化时间。
print(result)
我们还可以利用时间元组来生成我们指定格式的日期
import time
time_tuple = time.localtime()
print(time.strftime("%Y-%m-%d %H:%M:%S", time_tuple))
# 利用%Y代表年 %m代表月 %d代表日,¥H、%M、%S分别代替时分秒。
# 将元组日期中的年月日分别赋值给%Y,%m,%d
而反过来我们也可以将格式化时间转化为时间元组和时间戳
import time
# 将格式化时间转化为时间元组
pt = time.strptime("2018-08-17 10:35:34","%Y-%m-%d %H:%M:%S")
print(pt)
#将元组转化为时间戳。
t = time.mktime(pt)
print(t)
在运行程序时有时候我们需要测试运行所需要的时间,这个时候我们可以通过获取运行前后CPU的当前时间,然后再计算这俩个时间的差来获取这个程序运行的时间。
下面是一个简单计算编译器打印从0到9999的数字所需要的时间的简单例子
import time
start = time.process_time() # 之间的time.clock()已经被弃用了,改用time.perf_counter或者time.process来获取时间差。
for it in range(0,10000) :
print(it)
end = time.process_time()
print(end - start)
在time这个包中提供了一个方法sleep(x)可以用来进行休眠操作,x表示停止x秒。下面是一个简单的实时时间读书器,每过一秒输出一次(其实一次输出之后休眠一秒)。
import time
while True :
result = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(result)
time.sleep(1) # 运行到这里的时候休息1秒钟。
print(calendar.month(2018,8))
通过这串代码可以打印出2018年8月的日历。
通过datetime包中的datetime类中的一个now()方法
import datetime
t = datetime.datetime.now()
print(datetime.datetime.today()) # 获取当天的日期。
可以调用datetime类中的实例方法来查看具体的年月日时分秒
# 获取当天日期具体的年月日时分秒
print(type(t))
print(t.day)
print(t.min)
print(t.hour)
print(t.second)
print(t.month)
print(t.year)
还可以通过datetime类中的实例方法timedelta(day=x)来获取时间差
import datetime
t = datetime.datetime.now()
result = t + datetime.timedelta(days=15) # 制造15天的时间差。
print(t,result)
first = datetime.datetime(2018 , 8, 16,00,00)
second = datetime.datetime(2018 , 9, 3,00,00)
dealt = second - first
print(dealt,type(dealt))
print(dealt,dealt.total_seconds())
输出结果:
2018-08-27 01:39:42.207420 2018-09-11 01:39:42.207420
18 days, 0:00:00
18 days, 0:00:00 1555200.0