python内置库和pandas中的时间常见处理(2)

2023-02-23 20:50:31 浏览数 (1)

本篇文章继续介绍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秒

0 人点赞