本篇文章继续介绍pandas内置库和pandas中时间常见处理属性方法。
1.2 time库的常见时间方法
time库是python中内置标准库,可以直接调用,它可以提供获取系统时间并格式化输出,提供精确的计时功能,用于程序性能分析。
常见方法
1)获取时间戳
时间戳:北京时间1970年01月01日08时00分00秒(格林威治时间1970年01月01日00时00分00秒)起始至今的总秒数,总之是一个浮点数。
代码语言:javascript复制#1返回时间戳
import time
stamp_time = time.time()
print(stamp_time)
代码语言:javascript复制1657267541.6470242
可以将时间戳传递给datetime库用于生成各种时间格式(参见上一节)。
2)获取struct_time格式时间(结构与上一节datetime库类似)
代码语言:javascript复制struct_time = time.gmtime()
print(struct_time)
代码语言:javascript复制time.struct_time(tm_year=2022, tm_mon=7, tm_mday=8, tm_hour=8, tm_min=19, tm_sec=16, tm_wday=4, tm_yday=189, tm_isdst=0)
3)获取字符串型日期
代码语言:javascript复制o_ctime = time.ctime()
print(time.ctime(), type(o_ctime), sep = 't')
代码语言:javascript复制Fri Jul 8 16:24:31 2022 <class 'str'>
4)格式化字符串
通过time.strftime(format, t)函数将gmtime返回的时间转换成指定的格式。
代码语言:javascript复制gmtime_obj = time.gmtime() #构建gmtime对象
#gmtime时间对象转字符串
o_str_time1 = time.strftime('%Y/%m/%d %H:%M', gmtime_obj)
o_str_time2 = time.strftime('%Y/%m/%d %H:00', gmtime_obj)
print(o_str_time1, o_str_time2, type(o_str_time1), sep = 't')
#字符串转gmtime时间对象
time_str = '2022 07 08 16:30'
o_gmtime_obj = time.strptime(time_str, '%Y %m %d %H:%M')
print(o_gmtime_obj)
代码语言:javascript复制2022/07/08 08:30 2022/07/08 08:00 <class 'str'>
time.struct_time(tm_year=2022, tm_mon=7, tm_mday=8, tm_hour=16, tm_min=30, tm_sec=0, tm_wday=4, tm_yday=189, tm_isdst=-1)
当前我编辑的时间为16:30,细心的朋友可能会发现,为什么输出的时间不是下午16:30而是08:00?这是因为gmtime默认返回的是格林威治时间,比北京时间晚8小时。如何获取当前时区的时间?利用time.localtime()函数即可,返回的类型与gmtime一致,因此也可以用于格式化字符串输出。
代码语言:javascript复制#返回当地时间
local_time = time.localtime()
print(local_time)
代码语言:javascript复制time.struct_time(tm_year=2022, tm_mon=7, tm_mday=8, tm_hour=16, tm_min=35, tm_sec=10, tm_wday=4, tm_yday=189, tm_isdst=0)
5)程序计时应用(重要应用)
在一些项目中,为了测量模型的时间复杂度,我们需要计算模型执行的时间,time库可以提供精确的CPU级别的计数值。
代码语言:javascript复制#秒计时
start = time.perf_counter()
end = time.perf_counter()
process_time1 = end - start
print('起始时间{},终止时间{},运行了{}秒'.format(start, end, process_time1), sep = 't')
#纳秒计时
ns_start = time.perf_counter_ns()
ns_end = time.perf_counter_ns()
process_time2 = ns_end - ns_start
print('起始时间{},终止时间{},运行了{}纳秒'.format(ns_start, ns_end, process_time2), sep = 't')
代码语言:javascript复制起始时间3312.1737578,终止时间3312.1738308,运行了7.299999970200588e-05秒
起始时间3312174968400,终止时间3312175045400,运行了77000纳秒
5)设置程序休眠(重要应用)
利用time.sleep(t)可以设置程序暂停运行的时间,t为秒数。在一些程序中,例如数据挖掘,为了防止过于频繁的请求导致服务器崩溃,需要每次请求后设置暂停时间。
代码语言:javascript复制start = time.perf_counter()
time.sleep(2)
end = time.perf_counter()
temp_time = end - start
print('时间暂停了{}秒'.format(temp_time))
代码语言:javascript复制时间暂停了2.0144156999999723秒